我遇到了一种情况,我只能在Edge和IE浏览器中应用特定的CSS样式。我在网上发现,您可以使用_:-ms(X)添加CSS选择器,这种样式只适用于IE和Edge。
但我想知道,这个修复方法到底是如何起作用的?据我所知,逗号只会分离不同的选择器,这意味着其他浏览器也应该解释和使用这种样式。
下面是一个示例:
假设我们只想在边缘和IE中将94 IE的宽度应用于.selector元素。
_:-ms-lang(x), .selector {
width: 94px;
}
边缘浏览器将应用这种样式,而其他浏览器则不会。但为什么不呢?
选择器中的逗号应该将样式应用于_:-ms(X)元素和.selector元素。
发布于 2018-12-28 07:13:55
在CSS中,当浏览器不识别选择器的一部分(或认为选择器中存在错误)时,它将完全忽略整个规则。
限定规则的序曲被解析为选择器列表。如果这导致选择器列表无效,则整个样式规则无效。
CSS 2.1给出了选择器中逗号(,)的特殊含义。但是,由于不知道逗号在CSS的未来更新中是否具有其他含义,因此如果选择器中有错误,则应忽略整个语句,即使其他选择器在CSS 2.1中看起来可能是合理的。
因此,当其他浏览器试图解析选择器时,它们会发现_:-ms-lang(x)
选择器无效,因此忽略整个规则(包括.selector
)。
https://stackoverflow.com/questions/53925353
复制相似问题