为什么display: table-cell
在伪元素上使用时表现不同?
例如,以下元素将并排放置:
<div style="display:table-cell">one</div>
<div style="display:table-cell">two</div>
但是,在伪元素上使用display: table-cell
时,元素会堆叠起来:
div::after{
content: "two";
display: table-cell;
}
<div style="display:table-cell">one</div>
答案 0 :(得分:6)
::after
伪元素呈现为div
的子元素,因此它不是填充与div
单元格相同的行,而是存在于其自己的匿名块级别中div
单元格中的表格,在其自己的行上,位于文本“one”下方。
如果您的div
显示为表格行,则文本“one”将包含在其自己的匿名表格单元格中,而::after
伪元素将包含在其自己的另一个单元格中在同一行:
div {
display: table-row;
}
div::after {
content: "two";
display: table-cell;
}
<div>one</div>