头像

CSS 选择器权重(记一次笔试经历)

笔试时遇到一个很有意思的 CSS 权重题目:

HTML:

1
2
3
4
5
<div class="outer" id="app">
<div class="inner">
<p class="highlight">测试文本</p>
</div>
</div>

CSS:

1
2
3
4
5
6
7
#app .inner:not(#div) .highlight {
color: red;
}

#app .highlight:nth-of-type(1):nth-last-of-type(1) {
color: blue;
}

请问 测试文本 的颜色为?

根据很久之前看过的一篇博文,隐约记得里面有一个权重口诀:

从 0 开始,一个行内样式 +1000,一个 id +100,一个 class / 属性选择器或者伪类 +10,一个元素名或者伪元素 +1,通配符 * 不计权重。

我天真的选择了:测试文本,蓝色。😭

查看更多