css的執(zhí)行順序和優(yōu)先級問題示例探討

字號:


    今天偶爾看到這么一個問題,然后便上網(wǎng)查了很多資料,也做了相應的實驗,現(xiàn)在我們來簡單的看一下css的執(zhí)行順序問題。
    1、確定css樣式的導入方式
    通常情況下我們知道的css導入方式有如下四種:
    a、鏈入外部樣式 ----------------<link href= rel=stylesheet type=text/css>
    b、內(nèi)部樣式表 -----------------<style type=text/css>*{margin:0px;padding:0px;}</style>
    c、 內(nèi)嵌樣式 ------------------<body style=background-color:black></body>
    d、導入外部樣式 -------------------<style type=text/css>@importmystyle.css</style>
    當然大部分人對于前三種樣式導入方式非常熟悉,最后一個略微有些陌生,我們就先來介紹下這個方式:它雷同于鏈入外部樣式,但實質(zhì)上是存于內(nèi)部樣式,而且在編寫過程中,一定要寫在內(nèi)部樣式表內(nèi)部其他樣式前面。簡而言之就是:內(nèi)部的外部樣式,實現(xiàn)鏈入的功能,當然這個功能是需要最先實現(xiàn)的,否則則不具備效果。
    2、執(zhí)行順序和優(yōu)先級
    這個問題我們先來理解下基本規(guī)則:順序和優(yōu)先級,在確定優(yōu)先級的時候,我們就執(zhí)行優(yōu)先級高的,而忽略優(yōu)先級低的;
    a、相同導入方式下,同一個對象用不同數(shù)量元素來描述時
    例:h1{background-color:red;}
    #top h1{background-color:blue;}
    css自有一套特殊性判定方式,特殊性越高的則優(yōu)先級越高,而特殊性一般情況下說就是描述越具體,則特殊性越高,像例子中加了div的id之后,更能明確是哪一個div下的h1,則后一個的優(yōu)先級越高,所以最終應該是藍色的
    b、相同導入方式下,同一個對象用不同元素來描述時
    例:html中寫<h1 id=myway></h1>
    h1{background-color:red}
    #myway{background-color:blue;}
    雷同于上一個對比,此對比中,id選擇符或者class選擇符的特殊性更高,則優(yōu)先級越高,所以最后應該是藍色的
    c、內(nèi)部樣式表和內(nèi)嵌樣式表
    例:#myway{background-color:red}
    <div id=myway style=background-color:blue></div>
    這種進行對比的時候,style元素比id選擇符的優(yōu)先級更高,所以最終會是藍色
    d、特殊性和起源都相同
    例:#myway{background-color:red;}
    #myway{background-color:blue;}
    這種的進行對比的時候,以后一個為準,前一個表示被覆蓋無法顯現(xiàn),則最終會是藍色
    e、執(zhí)行重要性!important
    例:#myway{background-color:blue ! important;}
    <div id=myway style=background-color:red></div>
    當指定重要性的時候,優(yōu)先級是最高的,所以最終是藍色
    f、文件內(nèi)部樣式和外界導入或者鏈入
    任何文件內(nèi)的規(guī)則都比外界引入的規(guī)則優(yōu)先級高
    暫時能想到的和現(xiàn)階段查到的就是這些,還有哪些對比我們應該