应该说,::before 和 ::after 伪元素的初衷还是用于插入内容——不受文档约束,也不影响文档本身(比如,不影响 DOM),只影响最终的样式。
CSS 规范中给的例子很典型:p.note:before { content: "Note: " } ——这种插入的内容本身其实不是真正的内容,其实是身为文本的样式,所以没必要在 HTML 中重复出现,交给 CSS 来生成会很不错。
不过目前最多见的应用情形的确是把它们用成 content: "" 这样的空元素,然后给这个空元素加上各种样式。这样来说利用的就只是它这个元素的「存在」了(而非元素的内容),已经是讨巧的 hacking 了。
以下的CSS代码中AFTER怎么理解?那段代码是用来清除浮动的。
以下代码可以这么解释:
.clearfix:after { ----在类名为“clearfix”的元素内最后面加入内容;
content: "."----内容为“.”就是一个英文的句号而已。也可以不写。
display: block ----加入的这个元素转换为块级元素。
clear: both----清除左右两边浮动。
visibility: hidden ----可见度设为隐藏。注意它和display:none是有区别的。visibility:hidden仍然占据空间,只是看不到而已;
line-height: 0 ----行高为0;
height: 0----高度为0;
font-size:0 ----字体大小为0;
}
.clearfix { *zoom:1} ----这是针对于IE6的,因为IE6不支持:after伪类,这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。具体意思的话,不用深究,听说微软的工程师自己都无法解释清楚。height:1%效果也是一样。
整段代码就相当于在浮动元素后面跟了个宽高为0的空div,然后设定它clear:both来达到清除浮动的效果。
之所以用它,是因为,你不必在html文件中写入大量无意义的空标签,又能清除浮动。
话说回来,你这段代码真是个累赘啊,这样写不利于维护。
只要写一个.clearfix就行了,然后在需要清浮动的元素中 添加clearfix类名就好了。
如:
div class="head clearfix">/div>
解说完毕,希望对你有帮助。
一年好运随春到 四季彩云滚滚来 万事如意