<div class="clearfix">
<table class="fl">内容...</table>
<span class="fr">内容...</span>
</div>
图中fl和fr是左右浮动的意思,clearfix是清除浮动的类(使用的是很普通的float和伪元素,不贴代码了)
最外层的div设置了display: table-cell;vertical-align:middle;
,table子元素垂直居中了,span却没有(换成div或者其他元素也不行)。。。查了一下,貌似对于浮动元素会自动设置成display: block
。。但是table还是生效了啊
// div的css
display: table-cell;
vertical-align: middle;
使用display: table-cell
和vertical-align:middle
是一种垂直居中的方法(不是vertical-align不能设置在div上)
div
中的内容不是垂直居中的吗?如果你是想
table
和span
垂直居中对齐:首先,
vertical-align
作用于自身,不作用于后辈元素,也不可继承。所以在div
上设置vertical-align
是不正确的,当然也没什么额外影响,你可以去掉试试。需要table
和span
居中对齐,需要在这两个上都设置vertical-align
。其次,
vertical-align
要其效果是有条件的,必须是inline
格式化上下文才行。而在此例中,由于table
和span
都被应用了浮动float
,创建了BFC
,因此vertical-align
在table
和span
上不起效果。