今天寫代碼時遇到當設置inline-block的元素有內容時總有部分掉下去的感受。css
代碼:html
<p><i></i><span>主頁</span></p>
i{display: inline-block;width: 20px;height: 20px;background: url(homepage.svg) no-repeat;} span{display: inline-block;width:50px;height: 20px;}
like this:segmentfault
對於inline-block
元素,若是裏面沒有inline
內聯元素,或者overflow
不是visible
,那麼這個元素的基線baseline
就是其margin
底邊緣,不然,它的baseline
就是元素包含的內容中最後一行內聯元素的基線。svg
在此例中i
中沒有內聯元素,因此baseline
就是margin
下邊緣,span
中有內容「主頁」,因此是之內容的baseline
(「主頁」的下邊緣)做爲本身的baseline
。this
1.添加:url
i,span{vertical-align:top;}
2.添加:spa
span{overflow:hidden;}
緣由:設置overflow:hidden之因此能解決這個問題,是由於overflow:hidden的設置使其內容產生了BFC
,受BFC之間互不影響這一特性,因此再也不由於文字而下落。code
效果:htm
1.vertical-algin
是一個應用於行內元素
和表格單元
的屬性,默認值是baseline
。
baseline是要求該元素的基線與其父元素
的基線對齊。get
2.BFC相關內容連接:BFC
結語:暫時這麼多。