html - 跨度背景颜色样式未设置为工作

标签 html css

#div1 span{
    background-color:green;
}
.a{
    background-color:red;
}
<div id="div1">
    <span>span1</span>
    <span class="a">span2</span>
</div>

为什么 span2 background-color 没有设置为红色?它仍然是绿色的!发生了什么事?

最佳答案

之所以会这样,是因为评分系统,css 引擎使用它来确定哪些规则具有最高优先级,因此应该应用。 它被称为特异性。 如果您想阅读有关该主题的更多信息,请访问以下资源:

https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html

在您的情况下,#div1 span (1 id selector + 1 tag selector) 获得更高的优先级,然后 .a (1 class selector)。这就是为什么在您的示例中绿色会覆盖红色。

尝试使用 #div1 .a{} 而不是 .a 以获得预期的结果。

关于html - 跨度背景颜色样式未设置为工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26449183/

相关文章:

javascript - 如何让键盘+屏幕阅读器访问我的 Accordion ?

html - 如何包装 primefaces 树表的标题?

css - 如何调试 CSS 规范中未涵盖的声明组合导致的不一致?

jquery - 如何使用 jQuery 在 jtable 主体中添加滚动条?

css - 在 css 中嵌入字体 Fonte_Nexa-TTF 和 Fonte_Nexa

javascript - 使用 XMLHttpRequest 的 PHP/Mysql 查询无法检索要显示的图像

javascript - 如何有效地交换数组元素和变量?

javascript - 为什么我不能在 jQuery 中解析 A​​jax html GET 响应?

html - 如何在不滚动的情况下使页眉和页脚可见?

css - 如何跨浏览器将 div 置于背景图片中?