bootstrap学习笔记-导航和导航条

来源:互联网 发布:linux域控 编辑:程序博客网 时间:2024/05/02 02:31

导航

  • .nav 类作为基类(都要有)
  • 标签页:.nav-tabs
  • 胶囊式标签页:.nav-pills ;可以选择竖着的菜单:.nav-stacked
  • 两端对齐(按钮)自适应:.nav-justified ,在大于 768px 的屏幕上 ,通过 .nav-justified 类可以很容易的让标签页或胶囊式标签呈现出同等宽度。在小屏幕上,导航链接呈现堆叠样式。(小于768 变成竖着的了)
  • 如果要让线也自适应(对于按钮的长度,不是对于父类):.nav-tabs.justified
  • 注意胶囊式标签的时候,如果有.nav-tabs.justified那么也会出现线的。
  • 内容类:ul:tab-content li:tab-pane
  • 要按钮切换,在按钮上还要加上属性data-toggle=”tab”
  • 而内容要对应切换的话,要把href 对应id (注意加#号)
    例如:
<ul class="nav nav-tabs">    <li class="active"><a href="#a" data-toggle="tab">1</a></li>    <li><a href="#b" data-toggle="tab">2</a></li>    <li><a href="#c" data-toggle="tab">3</a></li></ul><ul class="tab-content">    <li id="a" class="tab-pane active">111111111</li>    <li id="b" class="tab-pane">2222222</li>    <li id="c" class="tab-pane">33333333</li></ul>
  • 内容切换时淡入淡出效果(加在li上):fade 注意默认的那个要加in (这和加active一样)

带下拉菜单的标签页

<ul class="nav nav-tabs">    <li class="active"><a>1</a></li>    <li><a href="#">2</a></li>    <li><a>3</a></li>    <li class="dropdown">        <a href="#" class="dropdown-toggle" data-toggle="dropdown"> Separated link</a>        <ul class="dropdown-menu">            <li><a href="#">1</a></li>            <li><a href="#">2</a></li>            <li><a href="#">3</a></li>            <li><a href="#">4</a></li>            <li><a href="#">5</a></li>        </ul>    </li></ul>

实际上就是在其中的一个li里面加一个下拉菜单ul,并且按钮上增加dropdown-toggle类 以及自定义方法 data-toggle=”dropdown”

  • 如果下拉菜单内容结合进去的话,那么和上面的类似,只要href和id对应,并且给a增加对应切换的属性data-toggle=”tab”就可以了例如:
<div class="div1">    <ul class="nav nav-tabs" id="tables">        <li class="active">            <a href="#a" data-toggle="tab">1</a>        </li>        <li>            <a href="#b" data-toggle="tab">2</a>        </li>        <li>            <a href="#c" data-toggle="tab">3</a>        </li>        <li class="dropdown">            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Separated link            <span class="caret"></span>            </a>            <ul class="dropdown-menu">                <li><a href="#e" data-toggle="tab">1</a></li>                <li><a href="#f" data-toggle="tab">2</a></li>                       </ul>        </li>    </ul>    <ul class="tab-content">    <li id="a"class="tab-pane active fade in">111111111</li>    <li id="b" class="tab-pane fade ">2222222</li>    <li id="c" class="tab-pane fade">33333333</li>    <li id="e" class="tab-pane fade ">dsdad</li>    <li id="f" class="tab-pane fade">aaaaaa</li>    </ul></div>

特别要注意的是:这里如果之前的不是dropdown 而是dropup,则效果会出错…暂时没有找出原因(*)

鼠标移入移出

bootstrap是没有这个效果的,因为bootstrap主要是为了移动端服务的,所以只有点击
所以必须要用js 去写方法

$("#tables a").on("mouseover",function(){    $(this).tab('show');//选项卡中就这个方法show});

如果移动端的话,就做一个判断就可以了,例如:

if(window.navigator.userAgent.toLowerCase().indexOf('mobile')==-1){    ...}

导航条

基础类

  • .navbar类作为基类,并且使用<nav>标签,如果使用div,需要加上role=”navigation”这样能够让使用辅助设备的用户明确知道这是一个导航区域。
  • 默认的样式.nav-default
  • 菜单(导航) .nav .navbar-nav组合

一般导航栏可以这么写:外面一个<nav>自适应,里面包含一个container固定,例如:

<nav class="navbar navbar-default">    <div class="container">        <ul class="nav navbar-nav">        <li><a href="#">one</a></li>        <li><a href="#">two</a></li>        <li><a href="#">three</a></li>        </ul>    </div></nav>
  • 固定的导航条.navbar-fixed-top 或者.navbar-fixed-botom
    注意这里固定导航条的话可能会遮盖下面的内容,解决办法是:给body加一个margin-top值。
    顺带一提,固定是使用了fixed属性值,它是相对于浏览器窗口进行定位的,而absolute是相对于有设定定位属性(非默认)的父级。
  • 如果要加logo,可以用一个nav-header z嵌套一个navbar-brand例如:
<nav class="navbar navbar-inverse navbar-fixed-top">    <div class="container">        <div class="navbar-header">            <a class="navbar-brand">logo</a>        <!-- 这是一个logo注意要用navbar-header嵌套-->        </div>         <ul class="nav navbar-nav">            <li><a href="#">one</a></li>            <li><a href="#">two</a></li>            <li><a href="#">three</a></li>        </ul>    </div></nav>
  • 如果要让导航靠右,可以用navbar-right,默认是navbar-left,复杂一点的,就一个导航靠左,一个导航靠右
<ul class="nav navbar-nav">    <li><a href="#">one</a></li>    <li><a href="#">two</a></li>    <li><a href="#">three</a></li></ul><ul class="nav navbar-nav navbar-right">    <li><a href="#">登录</a></li>    <li><a href="#">注册</a></li></ul>
  • 如果导航条中有button按钮,要注意加上.navbar-btn类这样就可以使它在导航条中居中
<button class="btn btn-default navbar-btn">    搜索 </button>
  • 而如果有链接,那么加上.navbar-link 类,使它的颜色接近导航条
  • 而如果是普通的文字什么的,要让它居中,则需要加上.navbar-text类,并且有可能需要加上.navbar-left,使之浮动。(如果用的是<p>这种块级元素)
  • 如果是输入框,则加上navbar-form,和narbar-left。例如:
<form class="navbar-form navbar-left">    <input type="text" class="form-control">    <input type="submit" value="搜索"></form>
  • 带下拉菜单的导航条:
<ul class="nav navbar-nav">    <li><a href="#">one</a></li>    <li><a href="#">two</a></li>    <li class="dropdown">        <a href="#" class="dropdown-toggle" data-toggle="dropdown">three<span class="caret"></span></a>        <ul class="dropdown-menu">            <li><a href="#">22</a></li>            <li><a href="#">22</a></li>            <li><a href="#">22</a></li>            <li><a href="#">22</a></li>            <li><a href="#">22</a></li>        </ul>    </li></ul>

响应式导航条

但是呢 这样效果在移动上不是很好,所以要修改一下。类似于官网那样,在移动端上多一个按钮,一点击导航就出现。加上.navbar-toggle

<button class="navbar-toggle">    <span class="icon-bar"></span>    <span class="icon-bar"></span>    <span class="icon-bar"></span></button>

然后要做到折叠效果的话,就给要折叠隐藏的部分加上collapse 和navbar-collapse类,然后给button按钮加上data-toggle=”collapse”属性以及data-target=”#id”。例如:

<nav class="navbar navbar-default navbar-fixed-top">    <div class="container">        <div class="navbar-header">        <button class="navbar-toggle" data-toggle="collapse" data-target="#collapse">            <span class="icon-bar"></span>            <span class="icon-bar"></span>            <span class="icon-bar"></span>        </button>        <a class="navbar-brand">logo</a>        <!-- 这是一个logo注意要用navbar-header嵌套-->        </div>         <div class="collapse navbar-collapse" id="collapse">            <ul class="nav navbar-nav">                <li><a href="#">one</a></li>                <li><a href="#">two</a></li>            </ul>        </div>    </div></nav>

滚动监听

  • 首先滚动监听加在body上,加上data-spy=”scroll”和data-target=”#id”(监听的标签id,这里就是导航条的id);并且要给body相对定位,这样才能内容相对于它进行操作(这是监听整个页面,如果只想监听一部分页面,也可以相对的属性加载别的标签上)
  • 给要监听滚动的内容分别加上id,然后导航条的a的href对应每个id
  • 这样做的话,要注意一个问题,滚动到页面哪里的时候 导航相对应的发生变化 , 如果要改变位置 ,可以用data-offset 属性来实现。注意这是滚动到那里导航变化,而不是点击导航,跳转到页面那里,
    点击导航跳转的话,默认是内容到达最顶端的时候(这里说的内容是指<=border),是在最顶端的时候,要修改,可以给除导航条外的内容加一个padding-top值。
0 0
原创粉丝点击