【分享】说说标准——关于样式的特殊性
本文简单的介绍下何为选择器的特殊性,它是起什么作用的,以及特殊性怎么计算方面的知识。
所谓的特殊性是指,作用于同一元素的同一特性 (property)的不同选择器的多个值,哪个会起作用,特殊性值最高的会起作用。比如,如下代码中,多个样式中的 'background-color' 同时作用于同一个 DIV 元素,那么最后,到底 DIV 应该会是什么颜色呢?
<!DOCTYPE HTML><style type="text/css"> div { width: 100px; height: 100px; } #c1 #c2 div.con { background-color: yellow; } div { background-color: black; } #c2 div { background-color: blue; } #c2 #content { background-color: red; }</style><div id="c1"> <div id="c2"> <div id="content" class="con"></div> </div></div>
* {} /* a=0 b=0 c=0 d=0 -> specificity = 0,0,0,0 */ li {} /* a=0 b=0 c=0 d=1 -> specificity = 0,0,0,1 */ li:first-line {} /* a=0 b=0 c=0 d=2 -> specificity = 0,0,0,2 */ ul li {} /* a=0 b=0 c=0 d=2 -> specificity = 0,0,0,2 */ ul ol+li {} /* a=0 b=0 c=0 d=3 -> specificity = 0,0,0,3 */ h1 + *[rel=up]{} /* a=0 b=0 c=1 d=1 -> specificity = 0,0,1,1 */ ul ol li.red {} /* a=0 b=0 c=1 d=3 -> specificity = 0,0,1,3 */ li.red.level {} /* a=0 b=0 c=2 d=1 -> specificity = 0,0,2,1 */ #x34y {} /* a=0 b=1 c=0 d=0 -> specificity = 0,1,0,0 */ style="" /* a=1 b=0 c=0 d=0 -> specificity = 1,0,0,0 */<HEAD><STYLE type="text/css"> #x97z { color: red }</STYLE></HEAD><BODY><P ID=x97z style="color: green"></BODY>
<!DOCTYPE HTML><style type="text/css"> div { width: 100px; height: 100px; } #c1 #c2 div.con { /* a=0 b=2 c=1 d=1 -> specificity = 0,2,1,1 */ background-color: yellow; } div { /* a=0 b=0 c=0 d=1 -> specificity = 0,0,0,1 */ background-color: black; } #c2 div { /* a=0 b=1 c=0 d=1 -> specificity = 0,1,0,1 */ background-color: blue; } #c2 #content { /* a=0 b=2 c=0 d=0 -> specificity = 0,2,0,0 */ background-color: red; }</style><div id="c1"> <div id="c2"> <div id="content" class="con"></div> </div></div>
#m1 { background-color: Aqua; } .c1 { background-color: Black; }<div id="m1"> <div class="c1"> <span>sssssssssssssssss</span> </div></div>
[解决办法]
使用!important可以改变优先级别为最高,其次是style对象,然后是id > class >tag ,另外,另外在同级样式按照申明的顺序后出现的样式具有高优先级。
[解决办法]