我从我问的上一个问题中得到了http://jsfiddle.net/8p2Wx/2/ ,我看到了这些行:
.cf:before,
.cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
如果我拿走content:""
,它会破坏效果,我不明白为什么它是必要的。
为什么需要添加空content
元素:after
和:before
伪元素?
我从我问的上一个问题中得到了http://jsfiddle.net/8p2Wx/2/ ,我看到了这些行:
.cf:before,
.cf:after {
content:"";
display:table;
}
.cf:after {
clear:both;
}
如果我拿走content:""
,它会破坏效果,我不明白为什么它是必要的。
为什么需要添加空content
元素:after
和:before
伪元素?
如果不定义该内容应该是什么,您就无法为生成的内容设置样式。如果您真的不需要任何内容,只需要一个额外的“不可见元素”来设置样式,则可以将其设置为空字符串 ( content: ''
) 并对其进行样式设置。
自己很容易确认这一点:http: //jsfiddle.net/mathias/YRm5V/
顺便说一句,您发布的代码片段是 micro clearfix hack,此处解释:http: //nicolasgallagher.com/micro-clearfix-hack/
至于您的第二个问题,您需要一个 HTML5 shiv(一小段 JavaScript)才能<nav>
在某些较旧的浏览器中设置样式。
作为 CSS 规范。状态,:after 和 :before 伪元素不会生成,如果 prop. content
未设置为“正常”和“无”以外的值:http: //www.w3.org/TR/CSS2/generate.html#content
content
对于 :before 和 :after 伪元素,初始值为 'normal' 和 'normal' 计算为 'none'。