bootstrap(5)关于导航

关于导航

首先说明一点,在Bootstrap中的导航组件都依赖于同一个.nav类,状态类是共用的,下面添加的nav样式都是基于 .nav的基类上添加的

1,导航样式

(1)在ul上添加样式

导航样式代码如下:

<ul  class="nav nav-tabs">
           <li role="presentation" class="active"><a href="#">Home</a></li>
           <li role="presentation"><a href="#">Profile</a></li>
           <li role="presentation"><a href="#">Messages</a></li>
</ul>

  

标签页:

.nav-tabs 

标签页是下面这种效果:

胶囊式标签:

.nav-pills

胶囊式标签是下面这种效果

2,通过在后面添加类名为  class="stacked"可以实现标签页的垂直效果

3,通过添加class="nav-justified"可以实现响应式效果

当屏幕宽度大于768px的时候,标签可以实现水平效果此时所有的宽度相加等于屏幕的宽度,,当宽度小于768px的时候,标签则会发生重叠效果,每一个标签或者胶囊单独占一行

(2)我们对于li元素上添加的效果

1,实现禁用的链接

通过在相应的li选项上添加 .disabled类来实现

代码如下:

<ul>
......
       <li  role="presentation"   class="disabled" ><a  href="">disabled link</a></li>


......
</ul>

 2,在选项中添加下拉菜单选项只要应用到 li元素的选项上添加dropdown下拉class就可以了

代码如下:

<ul  class="nav nav-tabs">
       .....
      <li  role="presentation"  class="dropdown">    
        <a  class="dropdown-toggle "  data-toggle="dropdown"  href="#" role="button"  aria-haspopup="true" aria-expanded="false">
        Dropdown<span  class="caret"></span>
        </a>
       <ul  class="dropdown-menu">
               .....
      </ul>
      </li>      

</ul>

  

效果如上图所示

胶囊式的下拉菜单和标签只要将

class="nav nav-tabs"换为 class="nav nav-pills"就可以了

二:关于导航条

(1)导航条的样式问题:

实现一个简单的导航条(navbar):

与普通的标签相比,这个元素呈现出的导航栏呈现一个条状的特征

如果需要使用导航组件实现导航条功能,需要在ul外侧的逻辑父元素上添加role="navigation"属性,或者用一个<nav>元素

代码如下:

<div class="navbar navbar-default" role="navigation"><!--role是为了方便屏幕阅读器理解此处内容-->
    <ul class="nav navbar-nav">
        <li class="active"><a href="#">HTML</a></li>
        <li><a href="#">CSS</a></li>
        <li><a href="#">JavaScript</a></li>
        <li><a href="#">PHP</a></li>
     </ul>
</div>

效果如下:

当屏幕缩小的时候,就变成了下面这幅图的样子:

(2)带有标题的菜单,通过在导航条最外面的元素内添加 class="navbar-header" 和 class="navbar-brand"来实现的

代码如下:

需要添加的内容:
<div class=navbar-header>
      <a  href="##" class="navbar-brand">前端开发</a>
</div>  

我们通过为菜单栏添加标题得到的效果如下:

 

(2)关于二级菜单

我们是如何实现二级菜单的呢?

二级菜单是下面的这种效果:

如何实现,其实很简单,我们只要在导航条内添加下拉菜单的按钮就可以了

代码如下:

<div class="navbar navbar-default" role="navigation"><!--role是为了方便屏幕阅读器理解此处内容-->
    <div class="navbar-header">
        <a href="#" class="navbar-brand ">前端学习</a>
    </div>
<ul class="nav navbar-nav">

    <li class="active"><a href="#">HTML</a></li>
    <li><a href="#">CSS</a></li>
    <li><a href="#">JavaScript</a></li>
    <li>
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            PHP<span class="caret"></span></a>
        <ul class="dropdown-menu">
            <li><a href="#">jQuery</a></li>
            <li><a href="#">Vue</a></li>
            <li><a href="#">NodeJS</a></li>
        </ul>
    </li>
</ul>
</div>  

并且当我们屏幕缩小的时候会出现下面的效果:

(3)对于导航栏元素的各种操作样式

     1》》对于导航条中的<button>元素,我们通过为<button>元素添加class为 .navbar-btn后可以实现在导航条中垂直居中的效果

<button type="button"  class="btn btn-default  navbar-btn">Sign in</button>  

效果如下:

使用  .navbar-btn 可以用在<a>和 <input>元素内,但是在 .navbar-nav内,.navbar-btn不应该用在<a>元素上

2》》对于导航条内的文本,我们想让导航条内的文本出现垂直居中的效果,只要在要居中的元素内加上 class="navbar-text"

3》》使用 .navbar-left 和 .navbar-right来实现导航链接,表单,按钮或者文本在导航条内的对齐

4》》通过添加 .navbar-fixed-top可以实现将导航条固定在顶部,

       通过添加 .navbar-fixed-bottom可以实现将导航条固定在底部

       通过添加.navbar-static-top类可以实现创建一个与页面等宽度的导航条,会随着页面向下滚动而消失

5》》通过添加 .navbar-inverse可以改变导航条的外观

    

<div  class="navbar  navbar-default   navbar-inverse"  role="navigation" >
        <div  class="container">
          .......
        </div>
</div>

 效果如下:

6》》面包屑布局:

我们要显示当前的位置应该如何显示呢?

例如我们要实现下面的效果:

代码如下:

<ol class="breadcrumb">
    <li><a href="#">Home</a></li>
    <li><a href="#">Library</a></li>
    <li class="active">Data</li>
</ol>    

给总体的元素添加一个class为  breadcrumb的class,后面跟上 <li>元素用来实现面包屑

我们观察bootstrap源码我们可以知道这个是如何实现的:

.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 20px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 4px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  padding: 0 5px;
  color: #ccc;
  content: "/\00a0";
}
.breadcrumb > .active {
  color: #777;
}  

我们看到,这个是对于class为 breadcrumb的元素下的li元素添加一个 "/"来实现的  通过 before {content来实现的}

并且对于添加了class为 active 的元素使用 color:#777改变了颜色,这个应该应用到当前所在的位置

 

posted @ 2017-05-13 00:04  张宁宁  阅读(590)  评论(0编辑  收藏  举报