:before和::before的区别
浏览:3634次 出处信息
在一次项目中,有一次要用到::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等。
那么现在就可以完整的回答标题中的问题了,对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的。
所以,如果你的网站只需要兼容webkit、firefox、opera等浏览器,建议对于伪元素采用双冒号的写法,如果不得不兼容IE浏览器,还是用CSS2的单冒号写法比较安全。
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:设置<input type=”file”>样式
后一篇:webkit对于CSS3渐变样式语法的更新 >>
文章信息
- 作者:神飞 来源: 前端观察
- 标签: 伪元素 伪类 冒号
- 发布时间:2011-01-17 22:57:55
近3天十大热文
- [11] 产品设计之QQ邮箱登录页与淘宝登录页
- [10] 逃出你的肖申克(五):看不见的牢笼(上)
- [10] 五个实用的Google Analytics过
- [9] 分布式系统的事务处理
- [9] Python连接 MySQL 数据库的超时问
- [8] 浅述各平台系统交互设计的不同关注点
- [8] 读书:谣言
- [8] 移动Web开发初学者指南
- [8] 社交网络语法:关于“Checkin”
- [8] 关于不得不在python中使用代理访问网络的