【发布时间】:2017-02-15 23:45:58
【问题描述】:
我看不出display: block; 和display: table; 之间的区别。例如,在编写 clearfix 时,以下两个 CSS 规则的行为似乎相同:
使用
display: block;
.clearfix:after {
content: "";
display: block;
clear: both;
}
<div class="clearfix">
<div style="float: right">Sidebar</div>
</div>
<p>
Content
</p>
使用
display: table;
.clearfix:after {
content: "";
display: table;
clear: both;
}
<div class="clearfix">
<div style="float: right">Sidebar</div>
</div>
<p>
Content
</p>
所以我的问题是:display: block; 和 display: table; 之间有什么区别?
【问题讨论】:
-
你不会看到你的例子有什么不同。在 micro clearfix hack 中使用 display:table 是为了
::before伪元素的好处,用于停止顶部边距子元素与容器元素折叠。
标签: html css layout css-float clearfix