我从这里得到了这段代码:
div.grid:after {
clear: both;
content: ".";
display: block;
height: 0;
visibility: hidden;
}
即使我删除,也没有任何反应。所以,说不通。
我看到许多基于:before
的技巧,这些技巧现在正在使用:after
。我想明白这一点,所以问道。
此"clearfix"生成伪元素并将其显示设置为表。这将创建一个匿名表格单元格和一个新的块格式上下文,这意味着 :before 伪元素可以防止上边距折叠。:after 伪元素用于清除浮点数。因此,无需隐藏任何生成的内容,并且减少了所需的代码总量。
包含 :before 选择器对于清除浮点数不是必需的,但它可以防止在现代浏览器中上边距折叠。这有两个好处:
1.It 确保与其他浮点包含技术在视觉上的一致性,这些技术创建新的块格式上下文,例如,溢出:隐藏
2.It 可确保在应用缩放:1时与IE 6/7的视觉一致性。
如果你要求你分享的那段代码,它会清除浮动元素,例如你有这个
演示
(没有伪:after
自我清除父级(
演示 2(使用带有属性的 :after
清除浮动元素(
如果你专门问:after
,它就像一个虚拟元素。它只是after
元素添加内容。您还有:before
,它将在之前添加内容。默认情况下,伪生成的内容inline
。
这个功能非常方便,当你想在元素之前或之后添加一些内容时,现在你会说这在现实世界中是如何真正有用的,而不是将其视为 2 个元素,您可以通过使其成为块级别来使其像div
一样运行
div.class_name:before,
div.class_name:after {
display: block;
}
只会在 DOM 中为您保存 2 个元素,我想分享一些我使用此功能来减少 HTML 的链接......
在这里回答 - 演示
在这里回答 - 演示
在这里回答 - 演示
MDN 参考 |支持
:after
与content
结合使用可用于在元素之后添加内容。试试这个:
span:after {
content: "world"
}
<span>Hello </span>
http://jsfiddle.net/d3M99/
此代码用于清除浮点数 :before
和:after
可以服务于许多目的,而且它真的很有用
例如,如果您想将 $ 添加到货币中
.currency:before{
content :'$';
}
这将为所有类货币添加 $,因此可以节省大量时间这是JSFIDDLE
查看此资源链接