在CSS的世界中也存在着权力即CSS权重
1. 概念
CSS权重指的是样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式
2. 以前的BUG
在实际开发中,我们常常会遇到样式不生效的问题,百思不得其解,其实这就是CSS的权重在作祟, 下面举个栗子
<style>
#txt{
color: black;
}
p{
color: aqua;
}
</style>
<body>
<p id="txt">CSS的权重问题</p>
</body>
段落为id选择器所赋的黑色如图:
3. 权重计算
大家都了解二进制如何比较大小吧:0010>0001 。
其权重计算与其类似。
4.权重的叠加
权重叠加计算的时候就是将叠加的权重都加起来,就像二进制加法一样,但是要记住权重可以发生叠加,但是不能发生进位可以出现 0 0 0 10 但是不能将后面的10进一位
div span {
/* 0,0,0,2 */
}
p #span_one{
/* 0,1,0,1 */
}
p{
/* 0,0,0,1 */
}
浏览器会执行权重最大的样式,这就是选择器的权重
每个选择器都有自己的权重,组合选择器由相加计算得到
且选择器权重不会满十进一:0,1,0,0>0,0,28,0
<style>
p {
color: aqua;
}
p #txt{
color: blue;
}
p .txt{
color: chocolate;
}
</style>
<p id="txt" class="txt">CSS的权重问题</p>
<p>权重的计算</p>
<p class="txt">优先渲染权重最大的样式</p>
结果如图:
4. 加载顺序
除了权重之外,CSS的渲染规则还有一种即根据css的引入顺序来加载。
同权重的选择器,顺序在后面的最后被加载会覆盖之前的样式
也就是我们平时所说的就近原则,选择靠近结构的那个选择器进行渲染
p{
color:green;
}
link
link
p{
color:green;
}
我们这里改变了两者的顺序,那么我们将会看到顺序最后引入的样式,后面的样式覆盖前面的样式