章节
问答
课签
笔记
评论
占位
占位

导航(标签形tab导航)

标签形导航,也称为选项卡导航。特别是在很多内容分块显示的时,使用这种选项卡来分组十分适合。

标签形导航是通过“nav-tabs”样式来实现。在制作标签形导航时需要在原导航“nav”上追加此类名,如:

<ul class="nav nav-tabs">
     <li><a href="##">Home</a></li>
     <li><a href="##">CSS3</a></li>
     <li><a href="##">Sass</a></li>
     <li><a href="##">jQuery</a></li>
     <li><a href="##">Responsive</a></li>
</ul>

运行的效果如下所示:

实现原理非常的简单,将菜单项(li)按块显示,并且让他们在同一水平上排列,然后定义非高亮菜单的样式和鼠标悬浮效果。代码如下:

/*源码请查阅bootstrap.css文件第3494行~第3509行*/

.nav-tabs {
border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
float: left;
margin-bottom: -1px;
}
.nav-tabs > li > a {
margin-right: 2px;
line-height: 1.42857143;
border: 1px solid transparent;
border-radius: 4px 4px 0 0;
}
.nav-tabs > li >a:hover {
border-color: #eee #eee #ddd;
}

其实上例的效果和我们平时看到的选项卡效果并不一致。一般情况之下,选项卡教会有一个当前选中项。其实在Bootstrap框架也相应提供了。假设我们想让“Home”项为当前选中项,只需要在其标签上添加类名“class="active"”即可:

<ul class="nav nav-tabs">
    <li class="active"><a href="##">Home</a></li>
    …
</ul>

运行效果如下:

对应样式代码如下:

/*源码请查阅bootstrap.css文件第3510行~第3518行*/

.nav-tabs >li.active> a,
.nav-tabs >li.active>a:hover,
.nav-tabs >li.active>a:focus {
  color: #555;
  cursor: default;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
}

除了当前项之外,有的选项卡还带有禁用状态,实现这样的效果,只需要在标签项上添加“class="disabled"”即可:

<ul class="nav nav-tabs">
     <li class="active"><a href="##">Home</a></li>
     …
     <li class="disabled"><a href="##">Responsive</a></li>
</ul>

运行效果如下:

实现这个效果的样式,在默认样式“.nav”中就带有:

/*源码请查看bootstrap.css文件第3469行~第3478行*/

.nav>li.disabled> a {
  color: #999;
}
.nav>li.disabled>a:hover,
.nav>li.disabled>a:focus {
  color: #999;
  text-decoration: none;
  cursor: not-allowed;
  background-color: transparent;
}

注意:我们看到的选项卡效果,点击菜单项就可以切换内容,如果要实现这样的效果需要配合js插件,这部分将在后面的教程中会介绍。

任务

我来试试:完成下面任务

编写代码实现“选项卡导航”,效果图如下:

备注:这一小节没有正确性验证,请查看结果窗口,从而判断输入代码是否正确。

 

?不会了怎么办

参考代码:

<ul class="nav nav-tabs">
     <li class="active"><a href="##">商品介绍</a></li>
     <li><a href="##">规格参数</a></li>
     <li><a href="##">商品评价</a></li>
     <li><a href="##">售后保证</a></li>
</ul>
||
1
2
<!DOCTYPE HTML>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
body{margin:30px
    ;padding
    :30px;}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

+ 我来回答 回答最高可+2积分

已采纳回答 / qq_L_500
代码应该没什么问题,meta标签还原试一下,最好还是去官方下载bootstrap来引用

最新回答 / 帅得被神追
这是一个链接啊 点击Home指向一个网页当然要用 a 啊  把##换成网址就会跳转

已采纳回答 / 小北呦
需要bootstrap.min.css 还有jQuery  代码的连接方式你从网上 导入这些css,js

最新回答 / qq_北冥之雪_0
应该是找不到你的js文件,你可以下载bootstrap包到本地  然后改导入路径

已采纳回答 / sevencuijian
我个人觉得这样做的目的是为了美观,请看截图<...图片...><...图片...>上面的一张是去掉margin-bottom:-1px;的样式;下面的一张是保留margin-bottom:-1px;的样式;你可以对比一下底部的样式,明显不一样。

已采纳回答 / qq_脑海中的橡皮擦_0
text-align:center

已采纳回答 / iRoo
通过这种方法得到的都是原生对象list[i\j],所以.attr/.on什么的都没有

+ 我来回答 回答最高可+2积分

+ 我来回答 回答最高可+2积分

+ 我来回答 回答最高可+2积分
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言