:before和::before的区别

转载 2015年07月07日 14:11:29

在一次项目中,有一次要用到::selection伪元素,然后开发同学问我,CSS中一个冒号和两个冒号有神马区别?

这好像真的是个问题,或许很多前端同学对此都有疑惑,查了些资料,证实了下两个符号的区别,简而言之:单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素

W3C关于CSS3选择器的规范中有一段描述:

A pseudo-element is made of two colons (::) followed by the name of the pseudo-element.
This :: notation is introduced by the current document in order to establish a discrimination between pseudo-classes and pseudo-elements. For compatibility with existing style sheets, user agents must also accept the previous one-colon notation for pseudo-elements introduced in CSS levels 1 and 2 (namely, :first-line, :first-letter, :before and :after). This compatibility is not allowed for the new pseudo-elements introduced in CSS level 3.

简单翻译一下,大意就是,伪元素由双冒号和伪元素名称组成。双冒号是在当前规范中引入的,用于区分伪类和伪元素。不过浏览器需要同时支持旧的已经存在的伪元素写法,比如:first-line、:first-letter、:before、:after等,而新的在CSS3中引入的伪元素则不允许再支持旧的单冒号的写法。

那么现在就可以完整的回答标题中的问题了,对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的

所以,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。

Oracle数据库中before触发与after触发的区别

之前看别人的解说,但就是理解不了before到底怎么触发到的,而且对里面的:new和:old的值一直区分不了,现在好不容易理清楚了,不一定对,纯属个人理解,我也找不到相关的资料,有找到的哥们儿望说分享...

JUnit4 中@AfterClass @BeforeClass @after @before的区别对比

@BeforeClass and @AfterClass @Before and @After 在一个类中只可以出现一次在一个类中可以出现多次,即可以在多个方法的声明前加上这两个Annotaion标签...

[DIV/CSS] CSS 属性 :before && :after的用法,伪类和伪元素的区别

一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容。举例说明: .before:be...

spring AOP @Around @Before @After 区别

此段小代码演示了spring aop中@Around @Before @After三个注解的区别  @Before是在所拦截方法执行之前执行一段逻辑。  @After 是在所拦截方法执行之后执行一段逻...
  • wz7090
  • wz7090
  • 2016年03月08日 11:29
  • 195

Before the Interview

  • 2016年04月10日 20:28
  • 6.23MB
  • 下载

php使用 _before_index() 来实现访问页面前,判断登录

C:\wamp\www\DEVOPS\Home\Lib\Action:

Java多线程 -- 深入理解JMM(Java内存模型) -- happens-before俗解

学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。...
  • fw0124
  • fw0124
  • 2015年01月15日 14:55
  • 6601
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章::before和::before的区别
举报原因:
原因补充:

(最多只允许输入30个字)