当两个类分配给一个DIV类过规则(class overrule when two classes a

2019-06-27 18:59发布

我创建一个<div>中,我想申请两个班的标签<div>标签,它会是一个缩略图画廊。 一类为它的位置和其他类的风格。 这样我可以申请风格,我是具有给我带来了一个问题,一些奇怪的结果。

可两个班被分配到<div>标签? 如果是这样,其中一个否决其他的一个或哪一个优先?

Answer 1:

多个类别可以被分配到一个div。 就在类名像这样的空格分隔它们:

<div class="rule1 rule2 rule3">Content</div>

那么这个div将匹配三种不同的类选择任何样式规则: .rule1.rule2.rule3

CSS规则应用于符合他们的选择中它们在样式表中出现的顺序是,如果有两个规则(多个规则试图设置相同的属性)之间的冲突,然后在页面对象CSS特殊性决定了规则优先。

如果CSS特异性是针对冲突的规则是相同的,那么后来一个(后面的样式表或在后来的样式表中定义的)优先。 对象本身的类名的顺序并不重要。 这是在样式表如果CSS特异性相同的事项的样式规则的顺序。

所以,如果你有风格是这样的:

.rule1 {
    background-color: green;
}

.rule2 {
    background-color: red;
}

随后,由于这两个规则匹配div和具有完全相同的CSS的特殊性,那么第二条规则是后话那么它会优先和背景是红色。


如果一个规则有较高的CSS特异性( div.rule1得分高于.rule2 ):

div.rule1 {
    background-color: green;
}

.rule2 {
    background-color: red;
}

然后,它会优先考虑这里的背景颜色是绿色。


如果两个规则不冲突:

.rule1 {
    background-color: green;
}

.rule2 {
    margin-top: 50px;
}

然后,这两个规则将被应用。



Answer 2:

事实上,去年在CSS所定义的类 - 适用于您的股利。

看看这个:

红最后在CSS

 .blue{ color: blue; } .red { color: red; } 
 <div class="blue red">blue red</div> <div class="red blue">red blue</div> 

VS

蓝色去年在CSS

 .red { color: red; } .blue{ color: blue; } 
 <div class="blue red">blue red</div> <div class="red blue">red blue</div> 



Answer 3:

如果你问他们有相同的属性,然后按该CSS规则是采取的最后一条语句。

<div class="red green"></div>

CSS

.red{
 color:red;
}
.green{
 color:green;
}

按照上面的例子是把最后一条语句按CSS树是。绿色



Answer 4:

即在CSS定义的最后的类具有优先权,如果没有别的应用。

阅读上的CSS优先 ,看看它是如何工作的。



Answer 5:

许多类可以被分配给一个元素,你只需将它们用空格分隔

<div class="myClass aSecondClass keepOnClassing stayClassySanDiego"></div>

因为在CSS中的级联的,重写规则最接近到文档的底部将被应用到的元素。

所以,如果你有

.myClass
{
    background: white;
    color: blue;
}

.keepOnClassing
{
    color: red;
}

红色将被使用,而不是背景颜色,因为它没有被覆盖。

你还必须考虑到CSS的特殊性,如果你有一个更具体的选择,这将是一个使用:

.myClass
{
    background: white;
    color: blue;
}

div.myClass.keepOnClassing
{
    background: purple;
    color: red;
}

.stayClassySanDiego
{
    background: black;
}

这里的第二选择将被使用,因为它是更具体。

你可以采取看看它都在这里 。



文章来源: class overrule when two classes assigned to one div