为了账号安全,请及时绑定邮箱和手机立即绑定

玩转Bootstrap(基础)

  • Bootstrap框架的导航条中除了使用navbar-brand中的a元素和navbar-nav的ul和navbar-form之外,还可以使用其他元素。框架提供了三种其他样式:

    1、导航条中的按钮navbar-btn

    2、导航条中的文本navbar-text

    3、导航条中的普通链接navbar-link

    但这三种样式在框架中使用时受到一定的限制,需要和navbar-brand、navbar-nav配合起来使用。而且对数量也有一定的限制,一般情况在使用一到两个不会有问题,超过两个就会有问题。

    先来看看这三种样式对应的源码:

    /*源码请查看bootstrap.css文件第3914行~第3939行*/

    .navbar-btn {
    margin-top: 8px;
    margin-bottom: 8px;
    }
    .navbar-btn.btn-sm {
    margin-top: 10px;
    margin-bottom: 10px;
    }
    .navbar-btn.btn-xs {
    margin-top: 14px;
    margin-bottom: 14px;
    }
    .navbar-text {
    margin-top: 15px;
    margin-bottom: 15px;
    }
    @media (min-width: 768px) {
    .navbar-text {
    float: left;
    margin-right: 15px;
    margin-left: 15px;
      }
    .navbar-text.navbar-right:last-child {
    margin-right: 0;
      }
    
    }

    /*bootstrap.css文件第3952行~第3954行*/

    .navbar-default .navbar-text {
      color: #777;
    }

    /*bootstrap.css文件第4035行~第4037行*/

    .navbar-inverse .navbar-text {
    color: #999;
    }

    /*boostrap.css文件第4017行~第4022行*/

    .navbar-default .navbar-link {
    color: #777;
    }
    .navbar-default .navbar-link:hover {
    color: #333;
    }

    /*bootstrap.css文件第4106行~第4111行*/

    .navbar-inverse .navbar-link {
    color: #999;
    }
    .navbar-inverse .navbar-link:hover {
    color: #fff;
    }

    navbar-btn和navbar-link在上一小节已经讲过,现在我们来看一下navbar-text的一个简单应用(见右侧代码编辑区11-20行)

    在结果窗口中查看效果,可以看出明显的存在问题,通过浏览器调试工具,可以看到a标签有margin-top和margin-bottom的值为15px,欲将其对齐,我们将上面的结构做一定的调整:

    <div class="navbar navbar-default" role="navigation">
     <div class="navbar-header">
         <a href="##" class="navbar-brand">慕课网</a>
     </div>  <div class="nav navbar-nav">      <a href="##" class="navbar-text">Navbar Text</a>      <a href="##" class="navbar-text">Navbar Text</a>      <a href="##" class="navbar-text">Navbar Text</a>  </div></div>

    换换标签就OK了。查看右侧代码结果窗口。


    查看全部
  • 有的导航条中会带有搜索表单,比如新浪微博的导航条:

    在Bootstrap框架中提供了一个“navbar-form”,使用方法很简单,在navbar容器中放置一个带有navbar-form类名的表单,示例代码编辑器(29-34行)。

    实现导航条表单的样式代码源码请查看bootstrap.css文件第3839行~第3904行,我们也对60多行样式代码节选了出来放到右侧bootstrap.css文件中,有兴趣的同学请查看。

    在上面的示例中,大家看到了“navbar-left”让表单左浮动,更好实现对齐。在Bootstrap框架中,还提供了“navbar-right”样式,让元素在导航条靠右对齐。

    /*源码请查看bootstrap.css文件第3831行~第3838行*/

    @media (min-width: 768px) {
     .navbar-left {
     float: left !important;
    }
    .navbar-right {
     float: right !important;
     }
    }

    注意:这里有一个条件,只有当浏览器视窗宽度大于768px生效。


    查看全部
  • 加入导航条标题

    在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过“navbar-header”和“navbar-brand”来实现,示例查看代码编辑器(11-22)。

    原理分析:

    此功能主要起一个提醒功能,当然改良一下可以当作是logo(此处不做过多阐述)。其样式主要是加大了字体设置,并且设置了最大宽度:

    /*源码查看bootstrap.css文件第3739行~第3755行*/

    .navbar-brand {
    float: left;
    height: 50px;
    padding: 15px 15px;
    font-size: 18px;
    line-height: 20px;
    }
    .navbar-brand:hover,
    .navbar-brand:focus {
    text-decoration: none;
    }
    @media (min-width: 768px) {
    .navbar> .container .navbar-brand,
    .navbar> .container-fluid .navbar-brand {
    margin-left: -15px;
    }
    }

    同样在默认导航条(navbar-default)下,对navbar-brand也做了颜色处理:

    /*源码请查看bootstrap.css文件第3947行~3951行*/

    .navbar-default .navbar-brand {
    color: #777;
    }
    .navbar-default .navbar-brand:hover,
    .navbar-default .navbar-brand:focus {
    color: #5e5e5e;
    background-color: transparent;
    }

    导航条状态、二级菜单

    同样的,在基础导航条中对菜单提供了当前状态,禁用状态,悬浮状态等效果,而且也可以带有二级菜单的导航条,案例代码见右侧代码编辑器(24-42行)。

    效果图如下:


    查看全部
  • 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多。我们先来看导航条中最基础的一个——基础导航条。

    使用方法:

    在制作一个基础导航条时,主要分以下几步:

    第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav”

    第二步:在列表外部添加一个容器(div),并且使用类名“navbar”和“navbar-default”

    示例查看右侧代码编辑(10-19行)。

    “.navbar”样式的主要功能就是设置左右padding和圆角等效果,但他和颜色相关的样式没有进行任何的设置。其主要源码如下:

    /*源码查看bootstrap.css文件第3642行~第3647行*/

    .navbar {
      position: relative;
      min-height: 50px;
      margin-bottom: 20px;
      border: 1px solid transparent;
    }

    原理分析:

    而导航条的颜色都是通过“.navbar-default”来进行控制:

    /*源码查看bootstrap.css文件第3940行~第3943行*/

    .navbar-default {
      background-color: #f8f8f8;
      border-color: #e7e7e7;
    }

    navbar-nav样式是在导航.nav的基础上重新调整了菜单项的浮动与内外边距。同时也不包括颜色等样式设置,源码请查看bootstrap.css文件第3785行~第3830行,我们把代码节选出来放入右侧bootstrap.css中。

    而颜色和其他样式是通过配合父容器“navbar-default”来一起实现:

    /*源码请查看bootstrap.css文件第3955行~第3974行*/

    .navbar-default .navbar-nav> li > a {
      color: #777;
    }
    .navbar-default .navbar-nav> li >a:hover,
    .navbar-default .navbar-nav> li >a:focus {
      color: #333;
      background-color: transparent;
    }
    .navbar-default .navbar-nav> .active > a,
    .navbar-default .navbar-nav> .active >a:hover,
    .navbar-default .navbar-nav> .active >a:focus {
      color: #555;
      background-color: #e7e7e7;
    }
    .navbar-default .navbar-nav> .disabled > a,
    .navbar-default .navbar-nav> .disabled >a:hover,
    .navbar-default .navbar-nav> .disabled >a:focus {
      color: #ccc;
      background-color: transparent;
    }


    查看全部
    0 采集 收起 来源:基础导航条

    2019-02-14

  • 导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个“条”字。其实在Bootstrap框架中他们还是明显的区别。在导航条(navbar)中有一个背景色、而且导航条可以是纯链接(类似导航),也可以是表单,还有就是表单和导航一起结合等多种形式。在这一节中将一起探讨Bootstrap框架中导航条的使用。

    导航条和导航一样,在Bootstrap框架中是一个独立组件,所以你也可以根据自己的需求使用不同的版本:

    • LESS版本:对应的源文件navbar.less

    • Sass版本:对应的源文件_navbar.scss


    查看全部
    0 采集 收起 来源:导航条基础

    2019-02-14

  • 有Aria前缀的都是无障碍阅读,即方便屏幕阅读器获取内容,当input聚焦时aria-label就会获取与之相关联的label的内容,当label中的内容在其他元素中出现过,则使用aira-lebelledby来获取相关的值

    查看全部
  • 下拉菜单(对齐方式)

    实现右对齐方法:

    Bootstrap框架中下拉菜单默认是左对齐,如果你想让下拉菜单相对于父容器右对齐时,可以在“dropdown-menu”上添加一个“pull-right”或者“dropdown-menu-right”类名,如下所示:

    <div class="dropdown">   <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">   下拉菜单   <span class="caret"></span>   </button>   <ul class="dropdown-menu pull-right" role="menu" aria-labelledby="dropdownMenu1">    …   </ul> </div>

    上面代码中的“pull-right”类可以用“dropdown-menu-right”代替,两个类的作用是一样的,可从下面的源代码中看出。

    实现原理:

    对应的样式如下:

    /*源码请查看bootstrap.css文件第3030行~第3033行和3082行~第3085行*/

    .dropdown-menu.pull-right {   right: 0;   left: auto; } .dropdown-menu-right {   right: 0;   left: auto; }

    同时一定要为.dropdown添加 float:left css样式。

    .dropdown{   float: left; }

    下拉菜单与父容器左边对齐:

    与此同时,还有一个类名刚好与“dropdown-menu-right”相反的类名“dropdown-menu-left”,其效果就是让下拉菜单与父容器左边对齐,其实就是默认效果。

    /*请查看bootstrap.css文件第3086行~第3089行*/

    .dropdown-menu-left {
      right: auto;
      left: 0;
    }


    查看全部
  • 面包屑(Breadcrumb)一般用于导航,主要是起的作用是告诉用户现在所处页面的位置(当前位置)。在Bootstrap框架中面包屑也是一个独立模块组件:

    • LESS版本:对应源文件breadcrumbs.less

    • Sass版本:对应源文件_breadcrumbs.scss

    • 编译出来的版本:源码对应bootstrap.css文件第4112行~第4129行

    使用方法:

    使用方式就很简单,为ol加入breadcrumb类:

    <ol class="breadcrumb">
      <li><a href="#">首页</a></li>
      <li><a href="#">我的书</a></li>
      <li class="active">《图解CSS3》</li>
    </ol>

    实现原理:

    看来不错吧!作者是使用li+li:before实现li与li之间的分隔符,所以这种方案在IE低版本就惨了(不支持)。

    /*源码查看bootstrap.css文件第4112行~第4129行*/

    .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: #999;
    }


    查看全部
    0 采集 收起 来源:面包屑式导航

    2019-02-13

  • 前面介绍的都是使用Bootstrap框架制作一级导航,但很多时候,在Web页面中是离不开二级导航的效果。那么在Bootstrap框架中制作二级导航就更容易了。只需要将li当作父容器,使用类名“dropdown”,同时在li中嵌套另一个列表ul,使用前面介绍下拉菜单的方法就可以:

    <ul class="nav nav-pills">
         <li class="active"><a href="##">首页</a></li>
         <li class="dropdown">
            <a href="##" class="dropdown-toggle" data-toggle="dropdown">教程<span class="caret"></span></a>
            <ul class="dropdown-menu">
                <li><a href="##">CSS3</a></li>
                …
           </ul>
         </li>
         <li><a href="##">关于我们</a></li>
    </ul>

    运行效果如下:

    通过浏览器调试工具,不难发现,点击有二级导航的菜单项,会自动添加“open”类名,再次点击就会删除添加的“open”类名:

    简单点来说,就是依靠这个类名来控制二级导航显示与否,并且设置了背景色和边框:

    /*源码查看bootstrap.css文件第3479行~3484行*/

    .nav .open > a,
    .nav .open >a:hover,
    .nav .open >a:focus {
    background-color: #eee;
    border-color: #428bca;
    }

    大家回忆一下,在制作下拉菜单时,可以用分隔线,那么在二级导航中是否可以呢?我们一起来看看:

    不用再说太多,只需要添加“<li class=”nav-divider”></li>”这样的一个空标签就可以了。

    运行效果如下:

    /*源码请查看bootstrap.css文件第3485行~第3490行*/

    .nav .nav-divider {
      height: 1px;
      margin: 9px 0;
      overflow: hidden;
      background-color: #e5e5e5;
    }


    查看全部
  • 实现原理并不难,列表(<ul>)上设置宽度为“100%”,然后每个菜单项(<li>)设置了“display:table-cell”,让列表项以模拟表格单元格的形式显示:

    /*源码请查阅bootstrap.css文件第3585行~第3607行*/

    .nav-justified {  width: 100%;}
    .nav-justified > li {
      float: none;
    }
    .nav-justified > li > a {
      margin-bottom: 5px;
      text-align: center;
    }
    .nav-justified > .dropdown .dropdown-menu {
      top: auto;
      left: auto;
    }
    @media (min-width: 768px) {
      .nav-justified > li {  display: table-cell;
      width: 1%;
      }
      .nav-justified > li > a {
      margin-bottom: 0;
      }
    }

    这里有一个媒体查询条件:“@media (min-width:768px){…}”表示自适应导航仅在浏览器视窗宽度大于768px才能按上图风格显示。当你的浏览器视窗宽度小于768px的时候,将会按下图的风格展示:

    注:在最右侧代码窗口中设置全屏可以切换效果。

    从上图效果可以得知,“nav-tabs”和“nav-justified”配合在一起使用,也就是自适应选项卡导航,浏览器视窗宽度小于768px时,在样式上做了另外的处理。

    /*源码请查阅bootstrap.css文件第3519行~第3562行*/

    .nav-tabs.nav-justified {
     width: 100%;
     border-bottom: 0;
    }
    .nav-tabs.nav-justified > li {
     float: none;
    }
    .nav-tabs.nav-justified > li > a {
     margin-bottom: 5px;
     text-align: center;
    }
    .nav-tabs.nav-justified > .dropdown .dropdown-menu {
     top: auto;
     left: auto;
    }
    @media (min-width: 768px) {
     .nav-tabs.nav-justified > li {
     display: table-cell;
     width: 1%;
      }
    .nav-tabs.nav-justified > li > a {
     margin-bottom: 0;
      }
    }
    .nav-tabs.nav-justified > li > a {
     margin-right: 0;
     border-radius: 4px;
    }
    .nav-tabs.nav-justified > .active > a,
    .nav-tabs.nav-justified > .active >a:hover,
    .nav-tabs.nav-justified > .active >a:focus {
     border: 1px solid #ddd;
    }
    @media (min-width: 768px) {
     .nav-tabs.nav-justified > li > a {
     border-bottom: 1px solid #ddd;
     border-radius: 4px 4px 0 0;
      }
    .nav-tabs.nav-justified > .active > a,
    .nav-tabs.nav-justified > .active >a:hover,
    .nav-tabs.nav-justified > .active >a:focus {
     border-bottom-color: #fff;
      }
    }


    查看全部
  • 自适应导航指的是导航占据容器全部宽度,而且菜单项可以像表格的单元格一样自适应宽度。自适应导航和前面使用“btn-group-justified”制作的自适应按钮组是一样的。只不过在制作自适应导航时更换了另一个类名“nav-justified”。当然他需要和“nav-tabs”或者“nav-pills”配合在一起使用。如:

    <ul class="nav nav-tabs nav-justified">
         <li class="active"><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>

    运行效果如下:(可单击全屏查看)


    查看全部
  • 在实际运用当中,除了水平导航之外,还有垂直导航,就类似前面介绍的垂直排列按钮一样。制作垂直堆叠导航只需要在“nav-pills”的基础上添加一个“nav-stacked”类名即可:

    <ul class="nav nav-pills nav-stacked">
         <li class="active"><a href="##">Home</a></li>
         <li><a href="##">CSS3</a></li>
         <li><a href="##">Sass</a></li>
         <li><a href="##">jQuery</a></li>
         <li class="disabled"><a href="##">Responsive</a></li>
    </ul>

    运行效果如下:

    垂直堆叠导航与胶囊形导航相比,主要是让导航项不浮动,让其垂直排列,然后给相邻导航项留有一定的间距:

    /*源码请查阅bootstrap.css文件第3578行~第3584行*/

    .nav-stacked > li {
      float: none;
    }
    .nav-stacked > li + li {
      margin-top: 2px;
      margin-left: 0;
    }

    大家是否还记得,在下拉菜单一节中,下拉菜单组与组之间有一个分隔线。其实在垂直堆叠导航也具有这样的效果,只需要添加在导航项之间添加“<li class=”nav-divider”></li>”即可:

    <ul class="nav nav-pills nav-stacked">
        <li class="active"><a href="##">Home</a></li>
        <li><a href="##">CSS3</a></li>
        <li><a href="##">Sass</a></li>
        <li><a href="##">jQuery</a></li>   <li class="nav-divider"></li>
        <li class="disabled"><a href="##">Responsive</a></li>
    </ul>

    运行效果如下:

    实现样式:

    /*源码请查阅bootstrap.css文件第3485行~3490行*/

    .nav .nav-divider {
    height: 1px;
    margin: 9px 0;
    overflow: hidden;
    background-color: #e5e5e5;
    }

    或许你会问,如果我在”nav-tabs”上添加“nav-stacked”是不是也能实现垂直的标签选项导航呢?答案是:在bootstrap V2.x版本可以,但在Bootstrap V3.x版本将这个效果取消了,可能作者觉得垂直选择项并不太常见,也不美观吧。


    查看全部
  • 胶囊形(pills)导航听起来有点别扭,因为其外形看起来有点像胶囊形状。但其更像我们平时看到的大众形导航。当前项高亮显示,并带有圆角效果。其实现方法和“nav-tabs”类似,同样的结构,只需要把类名“nav-tabs”换成“nav-pills”即可:

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

    实现效果样式代码:

    /*源码请查阅bootstrap.css文件第3563行~第3577行*/

    .nav-pills > li {
      float: left;
    }
    .nav-pills > li > a {
      border-radius: 4px;
    }
    .nav-pills > li + li {
      margin-left: 2px;
    }
    .nav-pills >li.active> a,
    .nav-pills >li.active>a:hover,
    .nav-pills >li.active>a:focus {
    color: #fff;
      background-color: #428bca;
    }

     


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

    标签形导航是通过“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插件,这部分将在后面的教程中会介绍。


    查看全部
  • 导航对于一位前端人员来说并不陌生。可以说导航是一个网站重要的元素组件之一,可以便于用户查找网站所提供的各项功能服务。导航的制作方法也是千奇百怪,五花八门。在这一节中将向大家介绍如何使用Bootstrap框架制作各式各样的导航。

    在Bootstrap框架将导航独立出来成为一个导航组件,根据不同的版本,可以找到对应的源码:

        LESS版本:对应的源文件是navs.less

        Sass版本:对应的源文件是_navs.scss

        编译后版本:对应源码是bootstrap.css文件第3450行~第3641行

    导航基础样式

    Bootstrap框架中制作导航条主要通过“.nav”样式。默认的“.nav”样式不提供默认的导航样式,必须附加另外一个样式才会有效,比如“nav-tabs”、“nav-pills”之类。比如右侧代码编辑器中就有一个tab导航条的例子,他的实现方法就是为ul标签加入.nav和nav-tabs两个类样式。

    /*源码请查阅bootstrap.css文件第3450行~第3493行*/

    .nav {
      padding-left: 0;
      margin-bottom: 0;
      list-style: none;
    }
    .nav> li {
      position: relative;
      display: block;
    }
    .nav> li > a {
      position: relative;
      display: block;
      padding: 10px 15px;
    }
    .nav> li >a:hover,
    .nav> li >a:focus {
      text-decoration: none;
      background-color: #eee;
    }
    .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;
    }
    .nav .open > a,
    .nav .open >a:hover,
    .nav .open >a:focus {
      background-color: #eee;
      border-color: #428bca;
    }
    .nav .nav-divider {
      height: 1px;
      margin: 9px 0;
      overflow: hidden;
      background-color: #e5e5e5;
    }
    .nav> li > a >img {
      max-width: none;
    }


    查看全部

举报

0/150
提交
取消
课程须知
本教程适合具有一定前端基础的人员,对HTML和CSS有一定的了解,对于定制Bootstrap的同学需要具备LESS和Sass基础知识。
老师告诉你能学到什么?
1、了解Bootstrap框架 2、如何使用Bootstrap制作Web页面或Web应用程序 3、如何定制个性化Bootstrap

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!