html - 如何让类(class)优先于 id?

标签 html css

<div id="normal" class="wider">

</div>

但这行不通! blah 的宽度 till 抵消了“更宽”的类。

最佳答案

你有一个 CSS specificity问题。

.wider 的特异性为 0,0,1,0#normal 的特异性为 0,1,0, 0。除了 ID(或内联定义,但这里不是这种情况),你不能用任何其他东西击败 ID。

如果您不能将所需的 width 声明放在 #normal 选择器中,我建议将其放在 #normal.wider 或者,如果两者都不可能,则有一个已识别的容器,比如 #container,在层次结构中尽可能高(可能是主体上的 ID?)并替换 。更宽#container .wider。这个新的选择器将具有 0,1,1,0 的特异性,它比 0,1,0,0 高一点。

使用 !important 也可以,但只能作为最后的手段使用。

例子:

<div id="container" class="wrapper">
    <div id="normal" class="wider">
</div>

对于这个 HTML 片段,一些可能的选择器按照特定性的降序排列是:

CSS Selector         -> Specificity
---------------------------------------
#container #normal   -> 0,2,0,0
#container .wider    -> 0,1,1,0 // These two have the same specificity so
#normal.wider        -> 0,1,1,0 // the last declared value will be used
#normal              -> 0,1,0,0
.wrapper .wider      -> 0,0,2,0
.wider               -> 0,0,1,0

关于html - 如何让类(class)优先于 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702328/

相关文章:

html - HTML 中的不同比例图像

jquery - Bootstrap 导航 slider

ASP.NET 和 HTML5 视频播放时间

javascript - KineticJS setScale/Zoom 问题 - 随机线

jquery - 下拉列表格式?

html - 使用 CSS 制作动画图片库的最佳实践

javascript - 使用 jQuery/Ajax 从下拉列表中选择同一页面上的另一个 div 加载内容

javascript - 如何从javascript调用一个php文件?

javascript - 位置 :Sticky Sidebar in Internet Explorer

html - 如何在标签下方水平对齐单选按钮