今天写代码时遇到当设置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
结语:暂时这么多。