一尘不染

我应该对伪元素使用单冒号还是双冒号?

css

由于IE7和IE8不支持对伪元素(例如::after::first- letter)使用双冒号表示法,并且由于现代浏览器支持:after向后兼容的单冒号(例如),我应该仅使用单冒号表示法以及何时使用IE8的市场份额下降到可以忽略的水平,然后回去查找/替换我的代码库?还是我都应该同时包括:

.foo:after,
.foo::after { /*styles*/ }

如果我关心IE8用户(可怜的朋友),单独使用double似乎很愚蠢。


阅读 482

收藏
2020-05-16

共1个答案

一尘不染

请勿 同时 使用逗号和逗号。兼容CSS 2.1(不支持CSS3)的用户代理将忽略整个规则:

当用户代理无法解析选择器时(即,它不是有效的CSS 2.1),它必须忽略选择器以及随后的声明块(如果有)。

CSS 2.1为选择器中的逗号(,)赋予了特殊含义。但是,由于不知道逗号是否会在将来的CSS更新中获取其他含义,因此即使选择器的其余部分在CSS2.1中看起来很合理,如果选择器中的任何地方出现错误,也应忽略整个语句。

您可以使用

.foo:after { /*styles*/ }
.foo::after { /*styles*/ }

另一方面,这比必要的更为冗长。现在,您可以使用单冒号表示法。

2020-05-16