语法:
E:before/E::before { sRules }
说明:
设置在对象前(依据对象树的逻辑结构)发生的内容。用来和content属性一起使用,并且必须定义content属性
-
CSS3将伪对象选择符(Pseudo-Element Selectors)前面的单个冒号(:)修改为双冒号(::)用以区别伪类选择符(Pseudo-Classes Selectors),但以前的写法仍然有效。
即E:before可转化为E::before
兼容性:
- 浅绿 = 支持
- 红色 = 不支持
- 粉色 = 部分支持
Selector | IE | Firefox | Chrome | Safari | Opera | iOS Safari | Android Browser | Android Chrome |
---|---|---|---|---|---|---|---|---|
Basic Support | 6.0-7.0 | 2.0-3.0 #2 | 4.0+ | 3.1+ | 15.0+ | 3.2+ | 2.1+ | 18.0+ |
8.0+ | 3.5+ | |||||||
::before | 6.0-7.0 | 2.0-3.0 #2 | ||||||
8.0 #1 | 3.5+ | |||||||
9.0+ | ||||||||
应用动画 | 6.0-9.0 | 2.0-3.5 | 4.0-25.0 | 3.1-6.0 | 15.0+ | 3.2-6.1 | 2.1-3.0 | 18.0-25.0 |
10.0+ #3 | 4.0+ | 26.0+ | 6.1+ | 7.0+ | 4.0+ | 26.0+ |
- 本质上并不支持伪元素的双冒号(::)写法,而是忽略掉了其中的一个冒号,仍以单冒号来解析,所以等同变相支持了E::before。
- 不支持设置属性position, float, list-style-*和一些display值,Firefox3.5开始取消这些限制。
-
IE10在使用伪元素动画有一个问题:
例如:
.test:hover {} .test:hover::before { /* 这时animation和transition才生效 */ } 需要使用一个空的:hover来激活