CSS 中的双重 class 声明
Double class declaration in CSS
因此,由于两套混乱的程序代码在可怕的 Lovecraftian 恐怖中发生碰撞,我对此无能为力,我不得不处理这样一种情况,我将有两个 在同一对象上单独 CSS class 声明。例如,我的最终结果可能看起来像...
<div class="my_class" class="cuthullus_child_class_that_overwrites_EVERYTHING">
...something goes here, or so I have been told...
</div>
我知道像这样有多个声明是不好的,但目前我真的无能为力。但是,我 可以 控制其中一个 class 的内容,并可能控制它们出现在...
中的顺序
鉴于此,该命令将对 classes showing/not-showing 产生什么影响?一个会覆盖另一个吗?它会出错并且我实际上没有 class 吗?他们会像在同一个声明中一样合并吗?还是用它来摧毁敦威治和我所珍视的一切?
编辑:深入研究,div 似乎将完全拒绝显示,但如果可能的话,我正在尝试找到解决方法。
你为什么不这样使用:
<div class="my_class second_class third_class">
...something goes here, or so I have been told...
</div>
这对你有用吗?!或者您正在尝试实现其他目标?!
你为什么不直接使用
<style>
.parent_class{
margin:10px;
}
.parent_class.child_class{
margin:20px;
background:red;
}
</style>
<div class="parent_class child_class">
...something goes here, or so I have been told...
</div>
对一个元素使用重复属性 class 在 HTML 中无效。
当你需要使用多个class时有效:
<div class="firstClass secondClass"></div>
顺序无关紧要,classes 将与 HTML 同等定位,但取决于 CSS 顺序。
例如:
.secondClass{background: salmon}
.firstClass{background: skyblue}
firstClass
将覆盖 secondClass
因为它设置在 secondClass
之后
首先,您需要将所有 classes 放在一个 'class' 属性中,由一个 space 分隔,否则浏览器将只接受第一个,也就是:
<div class="my_class cuthullus_child_class_that_overwrites_EVERYTHING">
...something goes here, or so I have been told...
</div>
要回答您的第二个问题,样式表中后面出现的那个将覆盖第一个 class 也存在的任何规则,又名:
.my_class{
color: red;
}
.cuthullus_child_class_that_overwrites_EVERYTHING{
color: blue;
}
颜色会是蓝色。如果他们以相反的方式订购,颜色将是红色的。如果任何规则包含“!important”,它将优先。
此外,如果 classes 中有不同的规则,它们不会冲突并且都适用,又名:
.my_class{
color: red;
}
.cuthullus_child_class_that_overwrites_EVERYTHING{
font-size: 36px;
}
颜色为红色,字体大小为 36px。
为单个对象声明多个 class 实际上很常见并且没有问题;因为 jQuery 通常用于 add/remove classes 基于不同的事件。
同一元素上的两个 class 属性将中断。第二个 class 将被忽略,见下文。
唯一的选择是添加内联样式,除非您可以在第一时间清理代码。
.my_class {
color: blue;
}
.alt_class {
color: red;
}
<div class="my_class" class="alt_class">
...something goes here, or so I have been told...
</div>
因此,由于两套混乱的程序代码在可怕的 Lovecraftian 恐怖中发生碰撞,我对此无能为力,我不得不处理这样一种情况,我将有两个 在同一对象上单独 CSS class 声明。例如,我的最终结果可能看起来像...
<div class="my_class" class="cuthullus_child_class_that_overwrites_EVERYTHING">
...something goes here, or so I have been told...
</div>
我知道像这样有多个声明是不好的,但目前我真的无能为力。但是,我 可以 控制其中一个 class 的内容,并可能控制它们出现在...
中的顺序鉴于此,该命令将对 classes showing/not-showing 产生什么影响?一个会覆盖另一个吗?它会出错并且我实际上没有 class 吗?他们会像在同一个声明中一样合并吗?还是用它来摧毁敦威治和我所珍视的一切?
编辑:深入研究,div 似乎将完全拒绝显示,但如果可能的话,我正在尝试找到解决方法。
你为什么不这样使用:
<div class="my_class second_class third_class">
...something goes here, or so I have been told...
</div>
这对你有用吗?!或者您正在尝试实现其他目标?!
你为什么不直接使用
<style>
.parent_class{
margin:10px;
}
.parent_class.child_class{
margin:20px;
background:red;
}
</style>
<div class="parent_class child_class">
...something goes here, or so I have been told...
</div>
对一个元素使用重复属性 class 在 HTML 中无效。
当你需要使用多个class时有效:
<div class="firstClass secondClass"></div>
顺序无关紧要,classes 将与 HTML 同等定位,但取决于 CSS 顺序。 例如:
.secondClass{background: salmon}
.firstClass{background: skyblue}
firstClass
将覆盖 secondClass
因为它设置在 secondClass
首先,您需要将所有 classes 放在一个 'class' 属性中,由一个 space 分隔,否则浏览器将只接受第一个,也就是:
<div class="my_class cuthullus_child_class_that_overwrites_EVERYTHING">
...something goes here, or so I have been told...
</div>
要回答您的第二个问题,样式表中后面出现的那个将覆盖第一个 class 也存在的任何规则,又名:
.my_class{
color: red;
}
.cuthullus_child_class_that_overwrites_EVERYTHING{
color: blue;
}
颜色会是蓝色。如果他们以相反的方式订购,颜色将是红色的。如果任何规则包含“!important”,它将优先。
此外,如果 classes 中有不同的规则,它们不会冲突并且都适用,又名:
.my_class{
color: red;
}
.cuthullus_child_class_that_overwrites_EVERYTHING{
font-size: 36px;
}
颜色为红色,字体大小为 36px。
为单个对象声明多个 class 实际上很常见并且没有问题;因为 jQuery 通常用于 add/remove classes 基于不同的事件。
同一元素上的两个 class 属性将中断。第二个 class 将被忽略,见下文。
唯一的选择是添加内联样式,除非您可以在第一时间清理代码。
.my_class {
color: blue;
}
.alt_class {
color: red;
}
<div class="my_class" class="alt_class">
...something goes here, or so I have been told...
</div>