gpt4 book ai didi

css - #id#id : Repeated occurrences of the same simple selector should increase specificity but don't for IDs in IE9

转载 作者:行者123 更新时间:2023-11-28 08:36:37 25 4
gpt4 key购买 nike

一段时间以来,我一直在使用一个我认为很聪明的小技巧。

这就是组合相同的 css 选择器来为规则的选择器添加特异性。

CSS 规范确实提到了:

Note: Repeated occurrances of the same simple selector are allowed and do increase specificity.

http://www.w3.org/TR/css3-selectors/#specificity

例如,如果 HTML 是

<body>
<section id="main">
<header class="titles">
<h2>Title red</h2>
<h2 class="blue">Title blue</h2>
</header>
<h2 class="blue">Title blue</h2>
</section>
</body>

和 CSS

#main .titles h2{
color: red;
}
#main .blue.blue{
color: blue;
}

这样我就可以使用 .blue 类来覆盖标题中的样式、事件...

(我这样做是因为我讨厌使用 !important。对我来说应该不惜一切代价避免它。)

第一个选择器权重为0111(1 id, 1 class, 1 element)第二个选择器weights 0120 (1 id, 2 classes)

有时我会用 ID 来做。它有效……在真正的浏览器中……这个选择器:

#main#main .blue{}

应该称重 0200,因为它有 2 个 ID 对吗?

那么 IE9(没有尝试其他)不会解释选择器中的多个相同 ID。此选择器不会覆盖 IE9 中的 #main .titles h2{}...

IE 的 css 控制台显示一个等于 #main .blue 的计算选择器并删除第二次出现...

这是为什么?

对我来说,这只是另一个 IE 实现“错误”。

正如@BoltClock 所建议的,我在这里提交了一份报告:

https://connect.microsoft.com/IE/feedbackdetail/view/958790/repeated-occurrences-of-the-same-simple-selector-should-increase-specificity-even-with-ids

最佳答案

是的,从 F12 中显示的行为来看,这绝对是一个错误。如果您将“增加特异性”解释为“必须增加特异性”,这也违反了规范。这个问题似乎只影响 ID 选择器。类选择器、属性选择器和伪类都可以。

当我搜索 Microsoft Connect 时,这似乎已经被报道过,它显示了一份现有报告,但由于某种原因我无法查看它。该问题在 IE11 中仍然存在;如果您也无法查看报告,请随时提交另一份报告。

关于css - #id#id : Repeated occurrences of the same simple selector should increase specificity but don't for IDs in IE9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com