我从上一个问题中得到了http://jsfiddle.net/8p2Wx/2/,我看到了这些问题:
.cf:before,
.cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
如果我带走content:""
,它会破坏效果,我不明白为什么这是必要的。
为什么需要将空content
添加到:after
和:before
伪元素?
答案 0 :(得分:24)
如果不定义内容应该是什么,则无法设置生成的内容的样式。如果你真的不需要任何内容,只需要一个额外的“隐形元素”来设置样式,你可以将它设置为空字符串(content: ''
),然后设置样式。
很容易自己确认:http://jsfiddle.net/mathias/YRm5V/
顺便说一句,您发布的代码片段是微清除修复程序,在此处说明:http://nicolasgallagher.com/micro-clearfix-hack/
至于你的第二个问题,你需要an HTML5 shiv(一小段JavaScript)才能在某些旧浏览器中设置<nav>
样式。
答案 1 :(得分:4)
作为CSS规范。 states,:after和:如果prop不生成伪元素。 content
未设置为“正常”和“无”以外的值:http://www.w3.org/TR/CSS2/generate.html#content
content
初始值为'normal','normal'为:before和:after伪元素计算为'none'。
答案 2 :(得分:0)
CSS有一个名为content的属性。它只能与伪元素一起使用:after和:before。它被写成一个伪选择器(带冒号),但它被称为伪元素,因为它实际上并没有选择页面上存在的任何内容,而是向页面添加新内容
看到这个以获得更好的解释:
并且nav元素是:
HTML 5的一个新元素是允许您将链接组合在一起的元素,从而产生更多的语义标记和额外的结构,这可能有助于屏幕阅读器。在本文中,我将讨论如何以及在何处使用它以及我对规范定义的一些保留。