bootstrap導航欄的辛酸史


昨天本來想完成test10的頁面內容的,但是給老鐵拉出去打麻將呢。不過還好昨天寫了一些內容。現在奉上。不作更改。

 

 

今天完成的事情:(實現了test9的響應式導航欄的垂直平分和下拉列表的居中問題。) 

我覺得最麻煩的就是要在bootstrap的格式下修改。我弄了好多次demo來虐導航欄。但是一直都沒有頭緒。知道昨晚在完玩狼人殺后,突然靈機一閃。

能不能通過內部的固定高度,來實現垂直平分的效果呢。

在查看psd圖的效果是導航欄的a是垂直平分的。

那么我可否通過固定a超鏈接的高度來實現垂直平分呢?

<div "h-nav">
   <nav "container navbar navbar-default" role="navigation">
       <div "row">
           <div "navbar-header  df-jcsbc">
               <a "navbar-brand" href="#">
                   <img src="img/test8-1/logo6.png" "">
               </a>
               <button type="button" " navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
                   <span "sr-only">切換導航</span>
                   <span "icon-bar"></span>
                   <span "icon-bar"></span>
                   <span "icon-bar"></span>
               </button>
           </div>
           <div "collapse navbar-collapse" id="navbar-collapse">
               <ul id="h-cell-1" "nav navbar-nav lsno navbar-right">
                   <li ""><a href="test9-1.html">首頁</a></li>
                   <li ""><a href="test9-3.html"><span "dib">職業</span></a></li>
                   <li ""><a href="test9-2.html"><span "dib pat">推薦</span></a></li>
                   <li ""><a href="#"><span "dib pat">關於</span></a></li>
               </ul>
           </div>
       </div>
   </nav>
</div>

 

帶着這種想法,我設定了如下屬性。

#h-cell-1 a{
   display:inline-block;
   height:97px;
   margin-left:32px;
   font-size:17.8px;
   text-decoration: none;color:white;
}

為此怎么實現垂直居中呢?

第一點想到的是position定位了

既然要實現相對於a超鏈接的position,那么必須引入一個span盒子了。

<li ""><a href="test9-2.html"><span "dib pat">推薦</span></a></li>

 

然后增加

#h-cell-1 li{height:97px;}
#h-cell-1 a{
   display:inline-block;
   position:relative;
   width:40px;
   height:97px;
   margin-left:32px;
   border-bottom:2px solid #20B176;
   font-size:17.8px;
   text-decoration: none;color:white;
}
#h-cell-1 a span{width:40px;}

 

就可實現垂直居中了!

但另外一個問題又接着出現了,在galaxy5的小屏幕下,下拉菜單的li間距太大,不美觀。

又該怎么辦呢?

這個是在28號晚上想到方法的。靈感也是看了其他同學的日報。他們提到媒體查詢。

好,什么是媒體查詢。建議百度。這里不做介紹。

媒體查詢是吧,好那么久好辦了。

 

@media only screen and (max-width: 700px) {
#h-cell-1 li{height:auto;}
#h-cell-1 a{height:20px;width:100%;margin:0;padding:0;overflow:hidden;}
#h-cell-1 a span{height:auto;}
}

 

ok,完美。

但是還有問題啊!

圖標,和按鈕原本是不垂直居中的啊!那這個怎么搞!

<div "navbar-header  df-jcsbc">
   <a "navbar-brand" href="#">
       <img src="img/test8-1/logo6.png" "">
   </a>
   <button type="button" " navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse">
       <span "sr-only">切換導航</span>
       <span "icon-bar"></span>
       <span "icon-bar"></span>
       <span "icon-bar"></span>
   </button>
</div>

 

他們不是都在navbar-header的盒子里嗎?

那不能通過flex兩端對齊來實現垂直嗎?

試試看

加了個

 

.df-jcsbc{display:flex;justify-content: space-between;align-items: center;}

 

但是效果不理想啊!總體來說,.navbar-brand 和navbra-toggle實現了垂直居中。

那,怎么辦呢?

我是直接弄

 

.navbar-header{position: relative;height:97px;}
.navbar-brand{
padding:0;

   }
.navbar-header img{position:absolute;
   left:20px;}
.navbar-header button{position:absolute;
   margin:0;
   right:20px;}

 

padding和margin來使他們讓出位置來的。

然后通過定位稍微調了點左右距離。

最后就可以實現垂直居中了。

 

明天及今天計划的事情:(是按照大娃師兄,提出的UI自檢 :首先對照字體大小,顏色,邊距,定位等問題,之后在不同的分辨率下查看是否有布局錯亂,不協調等問題。來做test10。) 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM