我有一个单独使用时正常工作的代码。以错误顺序应用CSS类
<div class="red green blue"> </div>
现在的red
性质首先应用然后通过覆盖然后通过blue
。最后,div
是blue
。
但是,当我在主应用程序中通过angular include
引用HTML文件加载相同的内容时,CSS的顺序颠倒了。
现在blue
首先被覆盖,然后被red
覆盖。现在div
是red
这是打破代码逻辑。
如果有人有想法,可能的原因是什么?
我有一个单独使用时正常工作的代码。以错误顺序应用CSS类
<div class="red green blue"> </div>
现在的red
性质首先应用然后通过覆盖然后通过blue
。最后,div
是blue
。
但是,当我在主应用程序中通过angular include
引用HTML文件加载相同的内容时,CSS的顺序颠倒了。
现在blue
首先被覆盖,然后被red
覆盖。现在div
是red
这是打破代码逻辑。
如果有人有想法,可能的原因是什么?
现在的
red
属性首先应用然后通过重写然后通过blue
这不是CSS如何工作。类列表中的类的顺序与这些类应用于元素的规则的优先级没有任何关系。
CSS规则由
!important
标志更多。
例子:
.red {
color: red;
}
.green {
color: green;
}
.blue {
color: blue;
}
<div class="red green blue">red green blue</div>
<div class="blue green red">blue green red</div>
注意两个div的有蓝色的文字(由blue
指定的颜色),即使第一个具有red green blue
,第二个blue green red
,因为所有的三个规则具有相同的特殊性,.blue
规则是CSS中的最后一条规则,并且它们都没有标记为!important
。
相反,让我们的.green
规则更为具体:
.red {
color: red;
}
div.green {
color: green;
}
.blue {
color: blue;
}
<div class="red green blue">red green blue</div>
<div class="blue green red">blue green red</div>
通知的div现在怎么是绿色的,而不是蓝色的,因为div.green
比.blue
更具体,所以div.green
规则优先于.blue
规则,即使.blue
稍后在CSS中。
是的,最后一条规则必须赢得..但是,当我加载使用角度包括在主应用程序的HTML ..第一条规则得到优先..并违反了逻辑。 –
@ atulquest93:再说一次:这不是CSS的工作原理。如果你在展示问题的问题中添加了[mcve],也许会很有用。 –
其实我有一个子应用程序,然后需要在主应用程序页面合并。子应用程序正在工作,如果单独使用..但是当它在主页面中导入的CSS的顺序得到尊敬。所以我卡住了,无法找到解决方案。 –
如果您没有使用属性选择器,如'div [class =“class1 class2 class3”]'元素中类的顺序无关紧要。 – Andreas
请使用Stack Snippets('[<>]'工具栏按钮)以** runnable ** [mcve]更新您的问题,以证明问题,因为CSS无法按上述方式工作,所以* else *继续。 –