可以忽略css值吗?
我有两个div:
<div id="div1" class="class1 class2">
</div>
<div id="div2" class="class1">
</div>
css类可以只应用于使用class1设置样式的div,如果它们包含class2,那么它会被忽略吗?所以在上面的div中,div2用class1设置样式,因为div1也用class2设置样式。
答案 0 :(得分:12)
您可以使用: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>
<强> Demo 强>
我希望有所帮助!
答案 1 :(得分:7)
像这样写:
.class1{
background:red;
}
.class1.class2{
background:none;
}
答案 2 :(得分:2)
您可以使用:not
选择器:
$('.class1:not(.class2)')
答案 3 :(得分:1)
YESSSS,
在css属性之后使用!important
例如height:30px !important
如果您的class1有height:30px
和class2 height:40px
然后用户!在class2 height中重要
答案 4 :(得分:0)
我用jquery处理这个问题的方法(因为它标记它的方式,如果你只想要div类只有class1),那就是做一个检查,比如
if($('div').class() == 'class1') {
}
这将只选择类等于class1
的div而不选择类class1 class2
答案 5 :(得分:0)
这里有很好的答案,我只想在这里添加一点: 您可以在这里选择看起来相同但有点不同的选择器:
class1
出现时覆盖class2
个样式。&#34;或者&#34;当两个班级都存在时我想要特殊的样式。&#34; class1
出现且class2
不存在时应用特殊样式。&#34; class1
出现时取消class2
选择器的所有规则。&#34; 您需要确定您的要求到底是什么。这些句子之间存在差异。
在第一种情况下,请使用@sandeep发布的CSS选择器,因为这些选择器的工作方式如下。 .class1.class2
选择器比.class1
选择器更具体,当两个类都存在时,它会被选中。因此,只有当两个类都存在时,您才可以设置要应用的规则。更具体的选择器中的碰撞规则具有比其他选择器更高的优先级,并且能够覆盖它。
在第二种情况下,请使用:not
选择器。这使得只有当一个类存在而另一些不存在时才能应用某些样式。
对于第三种情况:
你的问题是指向无视css类。这是不可能的。您可以在更具体的选择器中覆盖其规则,或将其规则放在不再与某些标记匹配的选择器中。但只要它在那里你就不能忽视它。因此,您必须从代码的class属性中删除class1
。你可以用jQuery实现这一点。
$(".class2").removeClass("class1");