Css 優先級問題分析
來源:程序員人生 發布時間:2013-11-26 15:18:19 閱讀次數:2738次
css優先級的四大原則:
原則一: 繼承不如指定
如果某樣式是繼承來的永遠不如具體指定的優先級高。
例子1:
CODE:
<style type="text/css">
<!--
*{font-size:20px}
.class3{ font-size: 12px; }
-->
</style>
<span class="class3">我是多大字號?</span>
運行結果:.class3{ font-size: 12px; }
例子2:
CODE:
<style type="text/css">
<!--
#id1 #id2{font-size:20px}
.class3{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字號?</span> </p>
</div>
運行結果:.class3{ font-size: 12px; }
注意:后面的幾大原則都是建立在“指定”的基礎上的。
原則二: #ID > .class > 標簽選擇符
例子:
CODE:
<style type="text/css">
<!--
#id3 { font-size: 25px; }
.class3{ font-size: 18px; }
span{font-size:12px}
-->
</style>
<span id="id3" class="class3">我是多大字號?</span>
運行結果:#id3 { font-size: 25px; }
原則三:越具體越強大。
解釋:當對某個元素的CSS選擇符樣式定義的越具體,層級越明確,該定義的優先級就越高。
CODE:
<style type="text/css">
<!--
.class1 .class2 .class3{font-size: 25px;}
.class2 .class3{font-size:18px}
.class3 { font-size: 12px; }
-->
</style>
<div class="class1">
<p class="class2"> <span class="class3">我是多大字號?</span> </p>
</div>
運行結果:.class1 .class2 .class3{font-size: 25px;}
原則四:標簽#id >#id ; 標簽.class > .class
上面這條原則大家應該也都知道,看例子
CODE:
<style type="text/css">
<!--
span#id3{font-size:18px}
#id3{font-size:12px}
span.class3{font-size:18px}
.class3{font-size:12px}
-->
</style>
<span id="id3">我是多大字號?</span>
<span class="class3">我是多大字號?</span>
運行結果:span#id3{font-size:18px} span.class3{font-size:18px}
很多人會有這樣的疑問,為什么不把這個原則四歸入原則一形成:
【 標簽#ID > #ID > 標簽.class > .class > 標簽選擇符 > 通配符 】 呢?或者將 “標簽.class” 看作多更為具體的 “.class” 從而歸入原則二呢?后面我將解答各位的疑惑,這就涉及到CSS的解析規律---------這四大原則間也是有優先級的,是不是有些糊涂了?別急,繼續看。
*四大原則的權重
相信很多人都知道上面的四大原則,不要以為知道了這四大原則就能分辨css中那條代碼是起作用的,不信?那你5秒內能肯定的知道下面這段代碼,測試中的文字的字號嗎?
CODE:
<style type="text/css">
<!--
.class1 p#id2 .class3{font-size:25px}
div .class2 span#id3{font-size:18px}
#id1 .class3{font-size:14px}
.class1 #id2 .class3{font-size:12px}
#id1 #id2{font-size:10px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字號?</span> </p>
</div>
為了大家方便閱讀,我去掉了一些代碼。
四大原則的權重就是: 原則一 > 原則二 > 原則三 > 原則四
解釋:
首先遵循原則一
有指定開始使用下面的原則,無指定則繼承離他最近的定義。
然后開始原則二
1、比較最高優先級的選擇符
例子:
CODE:
<style type="text/css">
<!--
#id3{font-size:18px}
.class1 .class2 .class3{font-size:12px} /* 描述的再具體也不起作用 --- 原則二 */
.class3{font-size:18px}
div p span{font-size:12px}
-->
</style>
<div id="id1" class="class1">
<p id="id2" class="class2"> <span id="id3" class="class3">我是多大字號?</span> </p>
</div>
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈