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