首頁  >  文章  >  web前端  >  分析bootstrap導覽列及其響應式的實現方式

分析bootstrap導覽列及其響應式的實現方式

零下一度
零下一度原創
2017-07-18 18:06:333059瀏覽
  1. 本文目地:分析bootstrap導航列及其響應式的實現方式,是自己的程式設計技術更上一層樓

  2. ##我們先來分析一下怎麼實現,第一步先貼一個bootstrap的導覽列模板

2.程式碼如下

 1 <nav class="navbar navbar-default navbar-fixed-top"> 2         
 <div class="container-fluid"> 3           <div class="navbar-header"> 4             
 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" 
 data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 5               
 <span class="sr-only">Toggle navigation</span> 6               
 <span class="icon-bar"></span> 7               
 <span class="icon-bar"></span> 8               <span class="icon-bar"></span> 9             
 </button>10             <a class="navbar-brand" href="#">Project name</a>11           
 </div>12           <div id="navbar" class="navbar-collapse collapse">13             
 <ul class="nav navbar-nav">14               <li class="active"><a href="#">Home</a>
 </li>15               <li><a href="#">About</a></li>16               
 <li><a href="#">Contact</a></li>17               <li class="dropdown">18                 
 <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>19                 <ul class="dropdown-menu">20                   <li><a href="#">Action</a></li>21                   <li><a href="#">Another action</a></li>22                   <li><a href="#">Something else here</a></li>23                   <li role="separator" class="divider"></li>24                   <li class="dropdown-header">Nav header</li>25                   <li><a href="#">Separated link</a></li>26                   <li><a href="#">One more separated link</a></li>27                 </ul>28               </li>29             </ul>30             <ul class="nav navbar-nav navbar-right">31               32             </ul>33           </div><!--/.nav-collapse -->34         </div><!--/.container-fluld -->35       </nav>
效果如下;

行動裝置:

 

 

3.程式碼分析

從外到內分析每個標籤及其樣式的作用

3.1最外層的div容器(樣式為navbar navbar-default navbar-fixed-top):

源碼

.navbar {
  position: relative;
  min-height: 50px;/**导航条最小宽度为50px**/
  margin-bottom: 20px;/****/
  border: 1px solid transparent;
}@media (min-width: 768px) {/**>=768的设备,其实就是pc,移动设备width属性都小于768px**//**可能有很多人不理解,实际上移动端的width属性是以device-width来计量的,不是单纯的像数的概念,建议有疑问的同学自行搜索device-width关键字**/
  .navbar {
    border-radius: 4px;/****/
  }}
.navbar-default {/**设备导航栏的配色**/
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;/**相对浏览器定位**/
  right: 0;
  left: 0;
  z-index: 1030;/**样式层叠在上层的优先级**/
}
由原始碼可見,最外層div容器主要的作用是創造一個最小高度為50px的條形容器(.navbar),相對於瀏覽器定位(.navbar- fixed-top),確定導覽列的配色(.navbar-default)

關於device-width的相關知識,可參考這篇文章 

3.2 樣式為navbar-header的div容器

其css原始碼如下

<br>
/**在pc端显示时向右浮动,在移动端此样式无效**/
@media (min-width: 768px) {
  .navbar-header {
    float: left;
  }}
此div在pc端和行動端顯示效果如下

pc端: 

#  

行動端:

可見在pc端時,瀏覽器寬度足夠,此div僅作為一個小的區塊級元素存在;而在行動端時,由於螢幕寬度不夠,故將導覽列的其他元素以下拉選單的形式實現,此div單獨填滿父容器。

navbar-header下方還有兩個字元素:樣式為navbar-toggle的