E:before/E::before

  • 版本:CSS2/3

语法:

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+
  1. 本质上并不支持伪元素的双冒号(::)写法,而是忽略掉了其中的一个冒号,仍以单冒号来解析,所以等同变相支持了E::before。
  2. 不支持设置属性position, float, list-style-*和一些display值,Firefox3.5开始取消这些限制。
  3. IE10在使用伪元素动画有一个问题:

    例如:

    .test:hover {} .test:hover::before { /* 这时animation和transition才生效 */ }

    需要使用一个空的:hover来激活

示例:

关注编程学问公众号