Open Ray-56 opened 5 years ago
想要了解CSS的权重计算规则,首先需要先清楚两个概念。 (1)、权重: 权重是一个相对的概念,是针对某一指标而言的。某一指标的权重是指该指标在整体评价中的相对重要的程度。 (2)、权重系数,是表示某一项指标在指标项系统中的重要程度,它表示在其他指标不变的情况下,这一项指标的变化,对结果的影响。
一般情况下,我们这么模拟CSS的权重值
* <span>等标签、::before伪元素等选择器 权重为 1;
* .class类、:hover伪类、a[id='123']属性选择器 等选择器权重为10;
* #id等id选择器,权重为100
* <span style="width:100px;"></span>等行内样式,权重为1000
* !important 权重高于行内样式
* 另外,通用选择器*、相邻选择器+、子选择器>、等选择器不在以上等级内 权重为0
权值 = 第一等级选择器*个数,第二等级选择器*个数,第三等级选择器*个数,第四等级选择器*个数;
但是,低等级的选择器,个数再多也不会越级超过高等级选择器的优先级。
即:
* 先从高等级的进行比较,高等级的同时,再比较低等级的。
* 完全相同,后者优先,也就是样式覆盖。
*css后面加!important,无条件绝对优先。
两个div内容的颜色都是蓝色。
.example span {color:red;}
的选择器优先级是 10 + 1 也就是11;而 .example .example_span{color:blue;}
的优先级是10 + 10 也就是20;.example_blue{color:blue} .example_red{color:red}
。<div class="example_blue example_red"></div>
与<div class="example_red example_blue"></div>
结果都为红色,如果两个样式先后互换,则均为蓝色。
两个 div 内容的颜色是什么?