【发布时间】:2019-10-02 16:43:52
【问题描述】:
我在大学计算机科学系的网络开发课上,老师问全班同学:“为什么类选择器规则被应用到标签选择器规则之上(参见示例代码)?”。 我回答说这是因为 CSS 的特殊性,我被告知我错了。他想要的答案是因为 CSS 继承。
虽然是对的,但为什么 CSS 特异性是一个不正确的答案?
p {
color: red;
}
.section {
color: green;
}
<p class="section">Section</p>
【问题讨论】:
-
假设您的段落有
section类,文本为绿色的原因肯定是由于特殊性。类规则比元素规则更具体,因此元素规则中定义的样式可能会在类规则中被覆盖。 CSS 中的继承与 DOM 层次结构有关。某些样式继承自父元素。 -
你的回答是对的。如果是
<p><span class="section">Section</span></p>,那肯定与继承有关,但是……不是!
标签: css inheritance css-specificity