淺談CSS 權(quán)值 層疊 重要性(!important)

1、特殊性 權(quán)值
有的時(shí)候我們?yōu)橥粋€(gè)元素設(shè)置了不同的CSS樣式代碼,那么元素會(huì)啟用哪一個(gè)CSS樣式呢?我們來(lái)看一下面的代碼:
- p{color:red;}
- .first{color:green;}
- <p class="first">三年級(jí)時(shí),我還是一個(gè)<span>膽小如鼠</span>的小女孩。</p>
p和.first都匹配到了p這個(gè)標(biāo)簽上,那么會(huì)顯示哪種顏色呢?green是正確的顏色,那么為什么呢?是因?yàn)闉g覽器是根據(jù)權(quán)值來(lái)判斷使用哪種css樣式的,權(quán)值高的就使用哪種css樣式。
下面是權(quán)值的規(guī)則:
標(biāo)簽的權(quán)值為1,類選擇符的權(quán)值為10,ID選擇符的權(quán)值最高為100。例如下面的代碼:
- p{color:red;} /*權(quán)值為1*/
- p span{color:green;} /*權(quán)值為1+1=2*/
- .warning{color:white;} /*權(quán)值為10*/
- p span.warning{color:purple;} /*權(quán)值為1+1+10=12*/
- #footer .note p{color:yellow;} /*權(quán)值為100+10+1=111*/
注意:還有一個(gè)權(quán)值比較特殊--繼承也有權(quán)值但很低,有的文獻(xiàn)提出它只有0.1,所以可以理解為繼承的權(quán)值最低。
2、層疊
如果在html文件中對(duì)于同一個(gè)元素可以有多個(gè)css樣式存在并且這多個(gè)css樣式具有相同權(quán)重值怎么辦?好,這一小節(jié)中的層疊幫你解決這個(gè)問(wèn)題。
層疊就是在html文件中對(duì)于同一個(gè)元素可以有多個(gè)css樣式存在,當(dāng)有相同權(quán)重的樣式存在時(shí),會(huì)根據(jù)這些css樣式的前后順序來(lái)決定,處于最后面的css樣式會(huì)被應(yīng)用。
如下面代碼:
- p{color:red;}
- p{color:green;}
- <p class="first">三年級(jí)時(shí),我還是一個(gè)<span>膽小如鼠</span>的小女孩。</p>
最后 p 中的文本會(huì)設(shè)置為green,這個(gè)層疊很好理解,理解為后面的樣式會(huì)覆蓋前面的樣式。
所以前面的css樣式優(yōu)先級(jí)就不難理解了:
內(nèi)聯(lián)樣式表(標(biāo)簽內(nèi)部)> 嵌入樣式表(當(dāng)前文件中)> 外部樣式表(外部文件中)。
3、重要性
我們?cè)谧鼍W(wǎng)頁(yè)代碼的時(shí),有些特殊的情況需要為某些樣式設(shè)置具有最高權(quán)值,怎么辦?這時(shí)候我們可以使用!important來(lái)解決。
如下代碼:
- p{color:red!important;}
- p{color:green;}
- <p class="first">三年級(jí)時(shí),我還是一個(gè)<span>膽小如鼠</span>的小女孩。</p>
這時(shí) p 段落中的文本會(huì)顯示的red紅色。
注意:!important要寫在分號(hào)的前面
這里注意當(dāng)網(wǎng)頁(yè)制作者不設(shè)置css樣式時(shí),瀏覽器會(huì)按照自己的一套樣式來(lái)顯示網(wǎng)頁(yè)。并且用戶也可以在瀏覽器中設(shè)置自己習(xí)慣的樣式,比如有的用戶習(xí)慣把字號(hào)設(shè)置為大一些,使其查看網(wǎng)頁(yè)的文本更加清楚。這時(shí)注意樣式優(yōu)先級(jí)為:瀏覽器默認(rèn)的樣式 < 網(wǎng)頁(yè)制作者樣式 < 用戶自己設(shè)置的樣式,但記住!important優(yōu)先級(jí)樣式是個(gè)例外,權(quán)值高于用戶自己設(shè)置的樣式。
以上這篇淺談CSS 權(quán)值 層疊 重要性(!important)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
CSS中l(wèi)ink和@import的區(qū)別說(shuō)明
link與@import這兩種方式都是為了加載CSS文件,但還是存在著細(xì)微的差別。下面腳本之家小編給大家介紹CSS中l(wèi)ink和@import的區(qū)別說(shuō)明,感興趣的朋友一起看下吧2016-08-12- 這篇文章主要介紹了CSS中的@import,是CSS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-07-14
css中提升優(yōu)先級(jí)屬性!important的用法總結(jié)
!important只有Ie7.0和firefox可以識(shí)別,但是Ie6.0不能成功應(yīng)用.!important提升優(yōu)先級(jí),下面對(duì)它的用法做下總結(jié)2014-08-08加了important標(biāo)記css樣式的jQuery寫法
這篇文章主要介紹了加了important標(biāo)記css樣式的jQuery寫法,需要的朋友可以參考下2014-07-16從可維護(hù)性角度考慮css的!important規(guī)則的可用性
使用!important對(duì)于性能并沒(méi)有什么負(fù)面影響。但是從可維護(hù)性角度考慮還是少用這個(gè)規(guī)則。不過(guò)這個(gè)規(guī)則在IE6中有bug2014-06-05css @import url加載樣式應(yīng)用深入分析
一直以來(lái)寫CSS的時(shí)候都沒(méi)有過(guò)多的考慮使用@import的方式,最近又看到有朋友在討論關(guān)于@import的一些好壞,以及要不要使用@import的方式加載樣式,需要的朋友可以了解下2012-12-12css中l(wèi)ink和@import的區(qū)別分析詳解
本文章詳細(xì)的介紹了關(guān)于link和@import的區(qū)別,有需要了解的朋友可以參考一下本文章2012-03-31- 我們引用css文件通常有兩種方式:link,@import 這兩天整理了一下這兩種用法的區(qū)別,加深認(rèn)識(shí)2010-06-17
- 很多人,包括很多網(wǎng)站(我所見(jiàn)過(guò)的所有網(wǎng)站,包括國(guó)內(nèi)著名的‘網(wǎng)頁(yè)設(shè)計(jì)師’網(wǎng)站),都說(shuō)important是不被IE所支持和認(rèn)識(shí)的,可是真的是這樣嗎?看了下邊的兩個(gè)例子,也許你2010-01-05
Webpack 中 css import 使用 alias 相對(duì)路徑的方法
在 Vue 項(xiàng)目中,我們通常使用 vue-webpack 腳手架生成工程模板,然后配置 @ 為項(xiàng)目根目錄下放資源和源碼的 /src 目錄的別名。這篇文章給大家介紹Webpack 中 css import 使2018-07-24