真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CSS優(yōu)先級指的是什么

這篇“CSS優(yōu)先級指的是什么”文章,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要參考一下,對于“CSS優(yōu)先級指的是什么”,小編整理了以下知識點,請大家跟著小編的步伐一步一步的慢慢理解,接下來就讓我們進入主題吧。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的獨山子網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

css是什么意思

css是一種用來表現(xiàn)HTML或XML等文件樣式的計算機語言,主要是用來設(shè)計網(wǎng)頁的樣式,使網(wǎng)頁更加美化。它也是一種定義樣式結(jié)構(gòu)如字體、顏色、位置等的語言,并且css樣式可以直接存儲于HTML網(wǎng)頁或者單獨的樣式單文件中,而樣式規(guī)則的優(yōu)先級由css根據(jù)這個層次結(jié)構(gòu)決定,從而實現(xiàn)級聯(lián)效果,發(fā)展至今,css不僅能裝飾網(wǎng)頁,也可以配合各種腳本對于網(wǎng)頁進行格式化。

所謂CSS優(yōu)先級,即是指CSS樣式在瀏覽器中被解析的先后順序;瀏覽器是通過優(yōu)先級來判斷哪些屬性值與元素最相關(guān)以決定并應(yīng)用到該元素上的。優(yōu)先級就是分配給指定的CSS聲明的一個權(quán)重,它由匹配的選擇器中的每一種選擇器類型的數(shù)值決定。

一、優(yōu)先級

所謂CSS優(yōu)先級,即是指CSS樣式在瀏覽器中被解析的先后順序。

瀏覽器根據(jù)優(yōu)先級來決定給元素應(yīng)用哪個樣式,而優(yōu)先級僅由選擇器的匹配規(guī)則來決定。

內(nèi)聯(lián)》ID選擇器》偽類=屬性選擇器=類選擇器》元素選擇器【p】》通用選擇器(*)》繼承的樣式

二、優(yōu)先級計算:

上面說了,優(yōu)先級僅有選擇器決定,怎么個計算方法呢?

a、用a表示選擇器中ID選擇器出現(xiàn)的次數(shù)

b、用b表示類選擇器,屬性選擇器和偽類選擇器出現(xiàn)的總次數(shù)。

c、用c表示標(biāo)簽選擇器、偽元素選擇器出現(xiàn)的總次數(shù)

d、忽略通用選擇器

e、然后計算a*100+b*10+c的大小,這就是優(yōu)先級了。

權(quán)重:內(nèi)聯(lián)樣式1000》id選擇器100》class選擇器10》標(biāo)簽選擇器1

Note:

ID選擇器「如:#header」,Class選擇器「如:.foo」,屬性選擇器「如:[class]」,偽類「如::link」,標(biāo)簽選擇器「如:h2」,偽元素「如::after」,選擇器「*」

接下來從以下幾點深入分析優(yōu)先級。

1、優(yōu)先級計算無視DOM樹中的距離

開頭說明的例子:




body h2 {
  color: green;
}
html h2 {
  color: purple;
}



Here is a title!

body h2和html h2的優(yōu)先級相同。

2、偽類選擇器,屬性選擇器和class選擇器的優(yōu)先級一樣

偽類=屬性選擇器=類選擇器

所以后面的會覆蓋前面的。





    :focus {
        color: red;
    }
    [class] {
        color: blue;
    }
    .classtest {
        color: green;
    }




    什么顏色文字

如下圖類選擇器在后,所以覆蓋前面的樣式,所以文字綠色。

CSS優(yōu)先級指的是什么

如下圖屬性選擇器在后,會覆蓋前面的類選擇器樣式,所以文本藍色。

CSS優(yōu)先級指的是什么

focus同理,只有放后面才生效,否則會被偽類和屬性選擇器覆蓋

CSS優(yōu)先級指的是什么CSS優(yōu)先級指的是什么

3、基于類型的優(yōu)先級

優(yōu)先級是根據(jù)選擇器的類型進行計算的。

舉例:屬性選擇器盡管選擇了一個ID但是在優(yōu)先級計算中還是根據(jù)類型計算,因此即使選擇的是相同的元素,但ID選擇器有更高的優(yōu)先級,所以* #foo設(shè)置的樣式生效。




* #foo {
  color: green;
}
*[id="foo"] {
  color: purple;
}



I am a sample text.

CSS優(yōu)先級指的是什么

4、:not偽類不參與優(yōu)先級計

【:not】否定偽類在優(yōu)先級計算中不會被看做是偽類,但是,會把:not里面的選擇器當(dāng)普通選擇器計數(shù)。這句話有點不好理解,其實就是忽略掉:not,其他偽類(如:hover)參與CSS優(yōu)先級的計算,但是「:not」不參與計算。

舉個例子:




div.outer p {
  color:red;
}
div:not(.outer) p {
  color: blue;
}




  

This is in the outer div.

       

This text is in the inner div.

  

CSS優(yōu)先級指的是什么

該例子中,選擇器p.outer p 和選擇器p:not(.outer) p的優(yōu)先級是相同的,:not被忽略掉了,:not(.outer)中的.outer正常計數(shù)。

如果調(diào)換位置,inner元素會變成紅色

    div:not(.outer) p {
        color: blue;
    }
    div.outer p {
        color:red;
    }

CSS優(yōu)先級指的是什么

5、優(yōu)先級計算不升位

不要把權(quán)重簡單的作為10進制數(shù)字比較其大小。

a=1的規(guī)則優(yōu)先級將永遠高于其他a=0的。

比如一個選擇器的a>0,b=0即使另外一個選擇器的a=0,b=12,c=12那么前者的權(quán)重依然更大?。?/p>

為證明我做了一個不現(xiàn)實的demo






#test{ /*a=1*/
    color: blue
}
div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest div.classtest{ /*b=12*/
color:green;
}
















什么顏色文章













可見文本顏色還是藍色?。?/p>

同樣有一個帶有10個id選擇器的規(guī)則,優(yōu)先級也不如內(nèi)聯(lián)樣式。

總之優(yōu)先級的計算不是基于十進制升位的,后面的數(shù)優(yōu)先級再高也不能升到前一位。

6、其他

下面再給出一個經(jīng)典的例子,自己計算一下就明白了。

Examples:

*               /* a=0 b=0 c=0 -> specificity =   0 */
LI              /* a=0 b=0 c=1 -> specificity =   1 */
UL LI           /* a=0 b=0 c=2 -> specificity =   2 */
UL OL+LI        /* a=0 b=0 c=3 -> specificity =   3 */
H1 + *[REL=up]  /* a=0 b=1 c=1 -> specificity =  11 */
UL OL LI.red    /* a=0 b=1 c=3 -> specificity =  13 */
LI.red.level    /* a=0 b=2 c=1 -> specificity =  21 */
#x34y           /* a=1 b=0 c=0 -> specificity = 100 */
#s12:not(FOO)   /* a=1 b=0 c=1 -> specificity = 101 */

如果確實有棘手的情況,可以在Firebug中查看優(yōu)先級。Firebug中按照優(yōu)先級排序顯示規(guī)則,將優(yōu)先級更高的規(guī)則顯示在最上面,并將被覆蓋的規(guī)則用刪除線劃掉。

CSS優(yōu)先級指的是什么

三、!import

為什么沒有把!import放在優(yōu)先級順序中,因為官方認為!import和優(yōu)先級沒一點關(guān)系。

不建議使用!import

選擇元素時盡量不要多選,不要放寬選擇器的范圍。因為范圍越小,越具有針對性,優(yōu)先級越高。

1、什么場合使用!import?

使用!import的場合也是有的,但是是在沒有別的解決方案的時候。

比如需要覆蓋內(nèi)聯(lián)樣式,因為內(nèi)聯(lián)樣式的優(yōu)先級最高,只能用!import去覆蓋內(nèi)聯(lián)樣式。

還有一種情況


#someElement p {
    color: blue;
}

p.awesome {
    color: red;
}




some text

在外層有 #someElement 的情況下,你怎樣能使 awesome的段落變成紅色呢?這種情況下,如果不使用 !important ,第一條規(guī)則永遠比第二條的優(yōu)先級更高。這也是沒有別的辦法,如果用內(nèi)聯(lián)結(jié)果只會更糟糕。

2、怎樣覆蓋已有!import規(guī)則

a、再加一條!import的css語句,將其應(yīng)用到更高優(yōu)先級的選擇器(在原有基礎(chǔ)上添加額外的標(biāo)簽、類或者ID選擇器)。

幾個更高優(yōu)先級選擇器的例子:

table td    {height: 50px !important;}.myTable td {height: 50px !important;}#myTable td {height: 50px !important;}

b、選擇器一樣,但添加的位置在原有聲明后面。因為相同優(yōu)先級,后邊定義的聲明覆蓋前面的。

相同選擇器的例子:

td {height: 30px !important;}td {height: 50px !important;}

以上是“CSS優(yōu)先級指的是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文標(biāo)題:CSS優(yōu)先級指的是什么
文章源于:http://weahome.cn/article/pihjod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部