种类 | 权重 |
---|---|
!important | 10000 |
行内样式 | 1000 |
id选择器 | 100 |
class、属性选择器、伪类选择器 | 10 |
标签选择器、伪元素选择器 | 1 |
行内样式总会覆盖外部样式表的任何样式(除了!important)
单独使用一个选择器的时候,不能跨等级使css规则生效
如果两个权重不同的选择器作用在同一元素上,权重值高的css规则生效
如果两个相同权重的选择器作用在同一元素上,以后面出现的选择器为最后规则
#test11 {
color: red;
}
.test1 .test2 .test3 .test4 .test5 .test6 .test7 .test8 .test9 .test10 .test11 {
color: blue;
}
<div class="test1">
<div class="test2">
<div class="test3">
<div class="test4">
<div class="test5">
<div class="test6">
<div class="test7">
<div class="test8">
<div class="test9">
<div class="test10">
<div class="test11" id="test11">
css权重
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
最终还是表现为红色。按理说,十一个class选择器权重为110,id选择器权重为100,110 > 100,应该表现为蓝色。因为class选择器和id选择器不是一个等级的,再多的class也会被一个id干掉。
想想那些网络小说里常说的一句话,境界没到,根本就不是一个等级的东西
.test #test{ } // id + class = 100 + 10 = 110
.test #test span{} // id + class + element = 100 + 10 + 1 = 111
.test #test .sonClass{} // id + class + class = 100 + 10 + 10 = 120
第三条样式生效。这个不用多说了,如果不是这样,权重还有毛线用。
<div id="app">
<div class="test" id="test">
<span>啦啦啦</span>
</div>
</div>
<style>
#test span{
color:blue;
}
#app span{
color: red;
}
</style>
表现为红色,因为权重相同(权重都是110),但是红色的样式后出现,所以,表现为红色。
用过一段时间的scss、less写样式,因为大多只用了嵌套,所以多多少少有一些关于权重的问题。
嗯 ~ ~ ~ 感觉BEM或许更适合中大型项目一些?
拥有一个高权重的网站,相信是各位站长一直以来的梦想。每天看着别人高权重、多流量的网站暗自羡慕,自己在想总有一天我也会做到一天10万IP,但想象归想象
StyleRuleBase类: 单个的样式规则(选择器+规则体);StyleSheetContents类: 样式规则集,其成员-m_childRules是一个StyleRuleBase实例的列表,是1:n的数量关系
通过以上实例,我们了解到了,简单好用的!important在一些场景里也是不好用的,尤其是当你随手拿来一个库使用的时候,你了解不到它内部的权重分布,所以样式操作起来也不能够得心应手。
本文主要介绍:使用 JS 根据奖品权重计算中奖概率实现抽奖的方法。奖项权重:[1, 5, 20, 74]。奖项权重主要用来表征各奖项的中奖几率,这里奖项权重数组的和值为100(=1+5+20+74),其中1表示一等奖的中奖概率为1%;
CSS权重是由四个数值决定,第一等:内联样式,如:,权值为1000.(该方法会造成css难以管理,所以不推荐使用)第二等:ID选择器,如:#header,权值为0100.第三等:类、伪类、属性选择器如:.bar, 权值为0010.
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!