今天写代码时遇到当设置inline-block的元素有内容时总有部分掉下去的感觉。
代码:
<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:
原因:
对于inline-block
元素,如果里面没有inline
内联元素,或者overflow
不是visible
,那么这个元素的基线baseline
就是其margin
底边缘,否则,它的baseline
就是元素包含的内容中最后一行内联元素的基线。
在此例中i
中没有内联元素,所以baseline
就是margin
下边缘,span
中有内容“主页”,所以是以内容的baseline
(“主页”的下边缘)作为自己的baseline
。
方法:
1.添加:
i,span{vertical-align:top;}
2.添加:
span{overflow:hidden;}
原因:设置overflow:hidden之所以能解决这个问题,是因为overflow:hidden的设置使其内容产生了BFC
,受BFC之间互不影响这一特性,所以不再因为文字而下落。
效果:
拓展:
1.vertical-algin
是一个应用于行内元素
和表格单元
的属性,默认值是baseline
。
baseline是要求该元素的基线与其父元素
的基线对齐。
2.BFC相关内容链接:BFC
结语:暂时这么多。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。