bootstrap導覽列的辛酸史,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。)