Bootstrap组件 - 导航

作者: 蝴蝶结199007 | 来源:发表于2017-06-14 18:02 被阅读69次

    知识点

    Bootstrap 中的导航组件都依赖同一个 .nav 类,状态类也是共用的。改变修饰类可以改变样式。

    为了确保导航的可访问性
    如果你在使用导航组件实现导航条功能,务必在 <ul> 的最外侧的逻辑父元素上添加 role="navigation" 属性,或者用一个 <nav> 元素包裹整个导航组件。不要将 role 属性添加到 <ul> 上,因为这样可以被辅助设备(残疾人用的)上被识别为一个真正的列表。

    在标签页上使用导航需要依赖 JavaScript 标签页插件,另外还要添加 role 和 ARIA 属性。

    标签页
    .nav-tabs 类依赖 .nav 基类。

        <ul class="nav nav-tabs"><!--nav-pills,切换为胶囊式标签导航-->
            <li role="presentation" class="active"><a href="#">Tab1</a></li>
            <li role="presentation"><a href="#">Tab2</a></li>
            <li role="presentation"><a href="#">Tab3</a></li>
        </ul>
    

    胶囊式导航可形成垂直排列的方式:

    <ul class="nav nav-pills nav-stacked">
      ...
    </ul>
    

    两端对齐的标签页
    在大于 768px 的屏幕上,通过 .nav-justified 类可以很容易的让标签页或胶囊式标签呈现出同等宽度。在小屏幕上,导航链接呈现堆叠样式,如下图:

    两端对齐nav-justified-触屏端

    从 v9.1.2 版本开始,Safari 有一个bug:对于两端对齐的导航,水平改变浏览器大小将引起绘制错误。

    <ul class="nav nav-tabs nav-justified">
      ...
    </ul>
    <ul class="nav nav-pills nav-justified">
      ...
    </ul>
    

    禁用状态
    对任何导航组件(标签页、胶囊式标签页),都可以添加 .disabled 类,从而实现链接为灰色且没有鼠标悬停效果。

    带下拉菜单的标签导航

        <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" class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                    下拉标签
                    <span class="caret"></span>
                </a><!--这里要注意使用a标签,如果使用的是button,样式会有差别-->
                <ul class="dropdown-menu">
                    <li><a href="#">下拉标签1</a></li>
                    <li><a href="#">下拉标签2</a></li>
                    <li><a href="#">下拉标签3</a></li>
                </ul>
            </li>
        </ul>
    

    实践

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="Resource-type" content="Document"/>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>组件-导航</title>
        <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
        <script src="js/jquery-2.1.4.min.js" type="text/javascript"></script>
        <script src="js/bootstrap.min.js" type="text/javascript"></script>
        <style>
            <!--
            .line{border-top:1px solid #afd9ee;margin:20px 0;}
            -->
        </style>
    </head>
    <body>
    <div class="container">
        <!--标签式导航-->
        <ul class="nav nav-tabs">
            <li role="presentation" class="active"><a href="#">Tab1</a></li>
            <li role="presentation"><a href="#">Tab2</a></li>
            <li role="presentation"><a href="#">Tab3</a></li>
        </ul>
        <div class="line"></div>
        <!--胶囊式标签式导航-->
        <ul class="nav nav-pills">
            <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>
        <div class="line"></div>
        <!--垂直排列的胶囊式标签式导航-->
        <ul class="nav nav-pills nav-stacked">
            <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>
        <div class="line"></div>
        <!--两端对齐的标签导航-->
        <ul class="nav nav-tabs nav-justified">
            <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>
        <ul class="nav nav-pills nav-justified">
            <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>
        <div class="line"></div>
        <!--禁用状态-->
        <ul class="nav nav-pills nav-justified">
            <li role="presentation" class="active"><a href="#">Home</a></li>
            <li role="presentation" class="disabled"><a href="#">Profile</a></li>
            <li role="presentation"><a href="#">Messages</a></li>
        </ul>
        <!--带下拉菜单的标签页-->
        <ul class="nav nav-pills">
            <li role="presentation" class="active"><a href="#">Home</a></li>
            <li role="presentation"><a href="#">Profile</a></li>
            <li role="presentation" class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                    下拉标签
                    <span class="caret"></span>
                </a>
                <ul class="dropdown-menu">
                    <li><a href="#">下拉标签1</a></li>
                    <li><a href="#">下拉标签2</a></li>
                    <li><a href="#">下拉标签3</a></li>
                </ul>
            </li>
        </ul>
        <div class="line"></div>
        <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" class="dropdown">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                    下拉标签
                    <span class="caret"></span>
                </a><!--这里要注意使用a标签,如果使用的是button,样式会有差别-->
                <ul class="dropdown-menu">
                    <li><a href="#">下拉标签1</a></li>
                    <li><a href="#">下拉标签2</a></li>
                    <li><a href="#">下拉标签3</a></li>
                </ul>
            </li>
        </ul>
    </div>
    
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:Bootstrap组件 - 导航

        本文链接:https://www.haomeiwen.com/subject/vnceqxtx.html