可以忽略 css 值吗?
我有两个 div:
<div id="div1" class="class1 class2">
</div>
<div id="div2" class="class1">
</div>
css 类是否可以仅应用于样式为 class1 的 div,如果它们包含 class2 则其被忽略?所以在上面的 div 中,只有 div2 使用 class1 样式,因为 div1 也使用 class2 样式。
您可以使用:not
选择器。这是一个例子:
CSS
.red:not(.yellow) {
color: red;
}
.yellow {
background-color: yellow;
}
HTML:
<div class = "red yellow">
Glee's awesome!
</div>
<div class = "red">
Glee's awesome!
</div>
演示。
我希望这有帮助!
像这样写:
.class1{
background:red;
}
.class1.class2{
background:none;
}
您可以使用:not
选择器:
$('.class1:not(.class2)')
是的,
在 css 属性之后使用 !important
例如height:30px !important
如果你的 class1height:30px
和 class2height:40px
那么用户 !important 在 class2 高度
我用jquery处理这个问题的方式(因为它是你标记它的方式,如果你只想要类class1的div)是做一个检查,比如
if($('div').class() == 'class1') {
}
这将只选择 class 等于的 divclass1
而不是 class 的那个class1 class2
这里有很好的答案,我只想在这里添加一点:您必须在选择器之间做出决定,这些选择器似乎做的相同但略有不同:
class1
样式。” class2
或“当两个班级都存在时,我想要特殊的风格。”class1
“在存在和class2
不存在时应用特殊样式。”class1
选择器的所有规则class2
。”你必须决定你的要求到底是什么。这些句子之间是有区别的。
在第一种情况下,请使用 @sandeep 之类的 CSS 选择器,因为这些选择器是这样工作的。选择器.class1.class2
比.class1
选择器更具体,当两个类都存在时选择它。因此,只有在两个类都存在时,您才能在此处设置要应用的规则。更具体的选择器中的冲突规则具有比其他选择器更高的优先级,并且能够覆盖它。
在第二种情况下,使用:not
选择器。这些使得只有当一个类存在而其他一些不存在时才可以应用某些样式。
对于第三种情况:您的问题指向忽略 css 类。这是不可能的。您可以在更具体的选择器中覆盖其规则,或者将其规则放在不再匹配某些标签的选择器中。但只要它在那里,你就不能忽视它。因此,您必须class1
从标签的 class 属性中删除 。不过,您可以使用 jQuery 来实现这一点。
$(".class2").removeClass("class1");