.clearfix {
*zoom: 1;
}
.clearfix:before,
.clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
* clear: both;
}
display:block和display:table完全看不出来区别啊?请问什么情况下有区别?
这里回答的感觉还是搞不懂
display: table
可以触发BFC块格式化上下文, 限制其内部元素float的不影响到BFC外面.另见清除浮动 - MDN
然鹅这里
display: table
是用在伪元素上, 那他和display: block
一样, 就只是将伪元素变成块级元素.有一点小区别是:
如果是
block
,.clearfix
内容为空的话,.clearfix
上方和下方的元素可以发生margin合并,如果是
table
, 相当于在上下方元素之间隔了一个BFC, 即使.clearfix
内容为空, 上下方元素依然不margin合并.zoom: 1
不需要,line-height
不需要, 这样就可以了: