【问题标题】:Difference between : and :: in CSS [duplicate]CSS中:和:之间的区别[重复]
【发布时间】:2014-01-20 21:01:20
【问题描述】:

CSS 中 : 和 :: 之间究竟有什么区别?
例如,我看到 CSS 代码如下:

.example:before{
   content:'just one';
}

.example2::before{
   content:'here two';
}

有什么区别?最佳做法是什么?

【问题讨论】:

    标签: css


    【解决方案1】:

    伪类

    引入伪类概念是为了允许基于位于文档树之外或无法使用其他简单选择器表达的信息进行选择。

    伪类总是由一个“冒号”(:) 后跟伪类的名称和可选的括号之间的值组成。

    参考:http://www.w3.org/TR/css3-selectors/#pseudo-classes

    伪元素

    伪元素创建了关于文档树的抽象,超出了文档语言指定的抽象。例如,文档语言不提供访问元素内容的第一个字母或第一行的机制。伪元素允许作者引用这些否则无法访问的信息。伪元素还可以为作者提供一种方法来引用源文档中不存在的内容(例如,::before 和 ::after 伪元素可以访问生成的内容)。

    伪元素由两个冒号 (::) 后跟伪元素的名称组成。

    参考:http://www.w3.org/TR/css3-selectors/#pseudo-elements

    过去我们通常只使用一个冒号来表示所有内容,但现在最好的做法是遵循 W3C 的指南,尽管我要添加一个警告,即您要确保您支持的浏览器在开始制作之前理解语法对您的样式表进行大规模更改。

    【讨论】:

    • 如果您想知道 - 您需要担心的唯一浏览器是 IE8。没有其他浏览器支持 :before 而不支持 ::before,但 IE8 在某些人口统计数据中仍然很重要。
    猜你喜欢
    • 2014-08-15
    • 2013-02-20
    • 2014-08-16
    • 2011-04-08
    • 2012-11-24
    • 2013-06-05
    • 2021-09-29
    • 2020-05-27
    • 2016-03-23
    相关资源
    最近更新 更多