为什么我需要在:: after伪元素上使用空的`content`属性?

时间:2012-03-07 10:35:08

标签: css pseudo-element css-content

我从上一个问题中得到了http://jsfiddle.net/8p2Wx/2/,我看到了这些问题:

.cf:before,
.cf:after {
    content:"";
    display:table;
}

.cf:after {
    clear:both;
}

如果我带走content:"",它会破坏效果,我不明白为什么这是必要的。

为什么需要将空content添加到:after:before伪元素?

3 个答案:

答案 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。它被写成一个伪选择器(带冒号),但它被称为伪元素,因为它实际上并没有选择页面上存在的任何内容,而是向页面添加新内容

看到这个以获得更好的解释:

  1. Css Content 1
  2. Css Content 2
  3. 并且nav元素是:

    HTML 5的一个新元素是允许您将链接组合在一起的元素,从而产生更多的语义标记和额外的结构,这可能有助于屏幕阅读器。在本文中,我将讨论如何以及在何处使用它以及我对规范定义的一些保留。

    1. Html5 TAGS