css 權(quán)重值(層疊性)實(shí)例詳解

•css中有很多選擇器,那在多個選擇器都作用于同一個元素的情況下會出現(xiàn)什么效果呢? 代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> p{ color:red; font-size: 10px; } #wrap{ color: deeppink; font-size: 30px; } .box{ color:yellow; font-size: 50px; } </style> </head> <body> <p class='box' id="wrap"> 猜猜我是什么顏色 </p> </body> </html>
•執(zhí)行可結(jié)果
•小結(jié) : 出現(xiàn)這種效果是因?yàn)闉g覽器是根據(jù)權(quán)重值來判斷使用哪種css樣式的,權(quán)重值高的它的優(yōu)先級會越高,就會呈現(xiàn)那種css樣式,id選擇器的權(quán)重值為100>類選擇器10>標(biāo)簽選擇器1,所以最終結(jié)果為id選擇器設(shè)置的樣式
•示列二 代碼
!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{ color: cyan; } div { color: yellow; } </style> </head> <body> <div> <p class='box' id="wrap"> 猜猜我是什么顏色 </p> </div> </body> </html>
•執(zhí)行結(jié)果
•小結(jié) : 繼承元素是沒有權(quán)重值的,所以最終結(jié)果為通用選擇器設(shè)置的樣式
•實(shí)例三 代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> p{ color: yellow; } *{ color: cyan; } </style> </head> <body> <div> <p class='box' id="wrap"> 猜猜我是什么顏色 </p> </div> </body> </html>
•執(zhí)行結(jié)果
•小結(jié) : 標(biāo)簽選擇器的權(quán)重值是1,但是仍然大于通用選擇器,所以最終結(jié)果為標(biāo)簽選擇器設(shè)置的樣式
•實(shí)例四 代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div p{ color: yellow; } div>p{ color: cyan; } p{ color: red; } </style> </head> <body> <div> <p class='box' id="wrap"> 猜猜我是什么顏色 </p> </div> </body> </html>
•執(zhí)行結(jié)果
•實(shí)例五 代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div>p{ color: cyan; } div p{ color: yellow; } p{ color: red; } </style> </head> <body> <div> <p class='box' id="wrap"> 猜猜我是什么顏色 </p> </div> </body> </html>
•執(zhí)行結(jié)果
權(quán)重值的計(jì)算
<!--有一個這樣的結(jié)構(gòu):--> <div class='wrap1' id='box1'> <div class="wrap2" id="box2"> <p class='active'>MJJ</p> </div> </div> <!--舉幾個例子看看他們的權(quán)重值:--> p{color:gray;} <!--權(quán)值為1--> div div p{color:yellow;} <!--權(quán)值為1+1+1=3--> .active{color:red;} <!--權(quán)值10--> div .active{color:black;} <!--權(quán)值為11--> div div .active{color:blue;} <!--權(quán)值為12--> .wrap #box2 .active{color:purple;} <!--權(quán)值為120--> #box1 #box2 .active{color:green;} <!--權(quán)值為210--> <!--由此可以看出,其實(shí)對于權(quán)重值的計(jì)算來說,首先它是不進(jìn)位的,對于使用的選擇器我們無非就是在數(shù)數(shù),數(shù)選擇器的數(shù)量(按照順序來,先是id再是class,再是元素),比如:--> #box1 .wrap2 div{ color:red; } <!--權(quán)值為 1 1 1--> 注意:繼承來的屬性也有權(quán)重值,不過它的權(quán)值非常低,可以理解為繼承的權(quán)重值最低。 !important 提升權(quán)重值實(shí)例 <!--我們在做網(wǎng)頁代碼時,有些特殊的情況需要為某些樣式設(shè)置具有最高權(quán)重值,怎么辦?比如我們知道內(nèi)聯(lián)樣式的權(quán)重值是1000,比較大,那么我們可以使用!important來解決。--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>!important的使用</title> <style type="text/css"> div{ color:green !important; } </style> </head> <body> <div id="box" style="color:red;"> <span>MJJ</span> </div> </body> </html>
•執(zhí)行結(jié)果
•小結(jié): 使用!important是一個壞習(xí)慣,應(yīng)該盡量避免,因?yàn)檫@嚴(yán)重破壞了樣式表中固有的權(quán)重值比較規(guī)則,使得在調(diào)試bug變得更加困難。當(dāng)兩條相互沖突的帶有!important規(guī)則作用與同一個標(biāo)簽,那么擁有最大優(yōu)先級的將會被采用。
什么情況下可以使用!important ?
•第一種
◦你的網(wǎng)站上有一個設(shè)計(jì)了全站樣式的css文件
◦同時你或者你的小伙伴寫了一些很差的內(nèi)聯(lián)樣式
•第二種
box p { color: blue; } p.awesome { color: red; }
怎樣才能使得文本的顏色變?yōu)榧t色?這種情況下,如果不適用!important.第一條規(guī)則永遠(yuǎn)大于第二條的規(guī)則。
總結(jié):
總結(jié)
以上所述是小編給大家介紹的css 權(quán)重值(層疊性)實(shí)例詳解 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
- 下面小編就為大家?guī)硪黄獪\談CSS中的繼承性,特殊性,層疊性和重要性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-09
- 這篇文章主要介紹了CSS中理解層疊性及權(quán)重如何分配,CSS的三大特性,分別是層疊性、優(yōu)先性和繼承性,本文給大家詳細(xì)講解,對css層疊性權(quán)重相關(guān)知識感興趣的朋友跟隨小編一起2022-10-24