html - 更改班级优先级
问题描述
有一种情况需要更改班级优先级。例如:
.one {
color: green;
}
.comment {
color: gray;
}
.red {
color: red !important;
}
<div class="one two red">Content</div>
<div class="comment two red">Content</div>
目前,.red
color
已应用。是否可以强制.comment.red
获取color
from .comment
?
注意:.comment
color
未知(来自可变主题)。
解决方案
是的,您可以使用多个类使其更具体。此外,我们知道这.comment.red
需要最少两节课。所以我觉得这是允许的:
.one {
color: green;
}
.comment.comment {
color: gray;
}
.red {
color: red;
}
<div class="one two red">Content</div>
<div class="comment two red">Content</div>
但请摆脱!important
.
的.comment
规则,而不是像这样:
我们可以这样:
更多解释
现代浏览器使用规则树计算样式上下文。如果多个规则具有相同的权重、来源和特异性,则考虑样式表中写得较低的规则并获胜。
当这里只有一个选择器时:
.class1 {}
上述规则的权重是0010
根据 CSS 的特殊性。同样的方式,如果有两个类:
.class1.class2 {}
.class1.class1 {}
请注意,在第二行中,我写了两次相同的课程。两者都将被计算为0020
,它高于第一个,尽管存在“未知”类,但我们现在在规则中有两个类。
这与我在上面的示例中使用的相同技巧使主题更容易。
推荐阅读
- javascript - 将脚本加载到 html 页面时出现问题
- java - 如何将 JSON 树“分解”为从父级到 Java 中连接的每个子级的单独列表?
- c - 如何读取c中特定列的行?
- file - 虚幻引擎无法生成 .uexp 文件
- node.js - 通过 Windows 命令行传递换行符 \n 字符
- sql - 完全连接具有重复值的两列
- java - 在 @Async 注释的情况下,Aspect 中的验证异常被吞没
- zebra-printers - 如何在不指定文本每个部分的位置的情况下打印价格?(ZPL)
- mongodb - 如何将字符串字段转换为已存在记录的嵌入文档中的对象 ID?
- java - 如何知道在 java 类文件中使用通用 Apache 库的目的是什么