jin*_*ula 107 css css-selectors internet-explorer-8 internet-explorer-7 pseudo-element
由于IE7和IE8不支持伪元素的双冒号表示法(例如::after或者::first-letter),并且由于现代浏览器支持单冒号符号(例如:after)以实现向后兼容性,因此我应该仅使用单冒号表示法吗? IE8的市场份额下降到可以忽略不计的水平回到我的代码库中找到/替换?或者我应该包括两者:
.foo:after,
.foo::after { /*styles*/ }
Run Code Online (Sandbox Code Playgroud)
如果我关心IE8用户(可怜的亲戚),单独使用双重似乎很愚蠢.
use*_*621 69
千万不能同时使用用逗号组合.符合CSS 2.1(不支持CSS3)的用户代理将忽略整个规则:
当用户代理无法解析选择器(即,它不是有效的CSS 2.1)时,它必须忽略选择器和以下声明块(如果有的话).
CSS 2.1为选择器中的逗号(,)赋予了特殊含义.但是,由于不知道逗号在将来的CSS更新中是否可能获得其他含义,因此如果选择器中的任何位置存在错误,则应忽略整个语句,即使选择器的其余部分在CSS 2.1中看起来合理.
http://www.w3.org/TR/CSS2/syndata.html#rule-sets
但是你可以使用
.foo:after { /*styles*/ }
.foo::after { /*styles*/ }
Run Code Online (Sandbox Code Playgroud)
另一方面,这比必要的更冗长; 现在,你可以坚持使用单结肠符号.
Fel*_*Als 62
来自CSS3选择器REC:
这个::符号由当前文档引入,以便在伪类和伪元素之间建立区别.
为了与现有样式表兼容,用户代理还必须接受CSS级别1和2中引入的伪元素的先前单冒号表示法(即:first-line,:first-letter,:before和:after).对于本规范中引入的新伪元素,不允许
这种兼容性.
对于已经存在于CSS2.1中的伪元素,使用(仅)单冒号表示法似乎是安全的,因为UA必须向后兼容.
Jos*_*rns 21
对于考虑使用一个冒号"安全",我绝对不同意@mddw和@FelipeAls.
这个"我会使用它,即使它被弃用"的心态正是为什么基于浏览器的技术在推进和前进方面如此缓慢的原因.
是的,我们希望保持与旧标准的兼容性.让我们面对现实,这是我们处理过的手.但是,这并不意味着你有借口在你的开发中懒惰,忽略了当前的标准而不赞成被弃用的标准.
目标应该是保持对当前标准的遵守,同时尽可能多地支持传统标准.
如果:在CSS2和::CSS3中使用伪元素,我们不应该使用其中一个; 我们应该同时使用两者.
为了完全回答所提出的原始问题,以下是支持最新CSS实现(版本3)的最合适方法,同时保留对版本2的遗留支持.
.foo:after {
/* styles */
}
.foo::after {
/* same styles as above. */
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28669 次 |
| 最近记录: |