Html 什么CSS特殊性规则导致问题I';我看见了吗?

Html 什么CSS特殊性规则导致问题I';我看见了吗?,html,css,Html,Css,我在列表中的项目上有一个左侧边框,对于所有项目,我将边框左侧颜色设置为透明。由css类“active day”表示的活动项将获得其边框的实际颜色。代码如下所示(注意,我省略了不相关的样式): 我的理解是: 类的优先级高于标记 在CSS文件中,文件后面的规则优先于文件前面的规则 然而,在本例中,我的第一个div并没有采用活动日的新边框颜色。为什么会这样 注意:当我添加时它会工作!对CSS很重要,但我知道这只能作为最后的衡量标准。我已经解决了问题!尽管我在我的第一个CSS规则中选择了divs,但

我在列表中的项目上有一个左侧边框,对于所有项目,我将
边框左侧颜色设置为透明。由css类“active day”表示的活动项将获得其边框的实际颜色。代码如下所示(注意,我省略了不相关的样式):

我的理解是:

  • 类的优先级高于标记
  • 在CSS文件中,文件后面的规则优先于文件前面的规则
然而,在本例中,我的第一个
div
并没有采用活动日
的新边框颜色。为什么会这样


注意:当我添加
时它会工作!对CSS很重要,但我知道这只能作为最后的衡量标准。

我已经解决了问题!尽管我在我的第一个CSS规则中选择了
divs
,但我使用HTML id表示父元素的事实使整个规则优先于id,id位于类之上。实现这一目标的一种方法是给每个部门一个“日”类,如下所示:


由于您已指定:

#day-sidebar div {
    border-left-width: 15px;
    border-left-style: solid;
    border-left-color: transparent;
}
与仅使用
.active day
相比,此中的样式优先级更高。只是选择器更多,因此优先级更高。id也比类具有更高的优先级

您可以通过执行以下操作来解决此问题:

.active-day {
    border-left-color: red !important;
}
#day-sidebar .active-day {
    border-left-color: red;
}
但是,我会(你也应该)做以下事情:

.active-day {
    border-left-color: red !important;
}
#day-sidebar .active-day {
    border-left-color: red;
}
使用
!重要提示
不建议使用-仅限使用´!必要时提供重要信息


如果有帮助,请告诉我:)

,您也可以阅读此内容以了解层次结构。哦,很好,您找到了答案。我现在的回答是多余的:Plol@ralphwayTOW对不起!谢谢你的回答。我猜更多的选择器意味着更多的特异性?我还是学到了一些新东西。不用担心,老兄。但是,你完全正确:选择器越多,优先级越高。:)这也是mozilla帖子中提到的内容,@A.Meshu发布的帖子——值得一读!
.active-day {
    border-left-color: red !important;
}
#day-sidebar .active-day {
    border-left-color: red;
}