tips:css
若是有!important那么相加的那些不管多权重高就无论用,若是有max-height/max-width那么!important无论用,若是同时有min-height/min-width和 max-height/max-width,那么max-height/max-width的无论用前端
口诀:从0开始,一个行内样式+1000,一个id+100,一个属性选择器/class或者伪类+10,一个元素名,或者伪元素+1前端工程师
min-height/min-width > max-height/max-width > !important > 行内样式 > ID选择器 > 类选择器、属性选择器、伪元素和伪类选择器 > 元素选择器 > 通用选择器
div p h3 ---> 0,0,0,3 因此此时h3标签的权重值为3, 由于div,p,h3这些都是标签选择器(权重值为1)spa
<div> <p> <h3>xxxx</h3> </P> </div>
#par .sub h3 ---> 0,1,1,1 此时的h3标签的权重值为111=100+10+1 (依次类推)code
<div id="par"> <p class="sub"> <h3>xxxx</h3> </P> </div>
要注意的一点就是如前面说到的那样,数位没有进位: 0,0,0,5 + 0,0,0,5 = 0,0,0,10而不是0,0,1,0,因此不会存在10个div能遇上一个类选择器的状况。ip
基于如下的HTML结构和CSS样式,文本Dijkstra的颜色是?it
<ul class="authors" id="favorite"> <li><span>Martin Fowler</span></li> <li id="related><span class="highlight">Dijkstra</span></li> </ul> ul #related span { color:red; } #favorite .highlight{ color:orange; } .highlight{ color:black; }
计算权重:
(1)ul #related span ---> 0,0,0,1 + 0,1,0,0 + 0,0,0,1 =0,1,0,2 ---> 102 red
(2) #favorite .highlight ---> 0,1,0,0 + 0,0,1,0 = 0,1,1,0 ---> 110 orange (权重最大)
(3) .highlight ---> 0,0,1,0 = 10 blackclass
由于110 > 102 > 10 因此文本Dijkstra显示的 Orange这种颜色import