css樣式采取的就近樣式原則。

成都創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為洛寧企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計,洛寧網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
行內(nèi)樣式div style=""/div優(yōu)先級最高,沒有行內(nèi)樣式那么會回在頁答面找style/style內(nèi)嵌樣式。
名稱CSS中的“層疊(cascading)”表示樣式單規(guī)則應(yīng)用于HTML文檔元素的方式。具體地說,CSS樣式單中的樣式形成一個層次結(jié)構(gòu),更具體的樣式覆蓋通用樣式。樣式規(guī)則的優(yōu)先級由CSS根據(jù)這個層次結(jié)構(gòu)決定,從而實現(xiàn)級聯(lián)效果。
擴展資料:
易于使用和修改:
CSS可以將樣式定義在HTML元素的style屬性中,也可以將其定義在HTML文檔的header部分,也可以將樣式聲明在一個專門的CSS文件中,以供HTML頁面引用。總之,CSS樣式表可以將所有的樣式聲明統(tǒng)一存放,進(jìn)行統(tǒng)一管理。
另外,可以將相同樣式的元素進(jìn)行歸類,使用同一個樣式進(jìn)行定義,也可以將某個樣式應(yīng)用到所有同名的HTML標(biāo)簽中。
參考資料來源:百度百科-CSS
在多個選擇符應(yīng)用于同一個元素上那么Specificity值高的最終獲得優(yōu)先級。
選擇符Specificity值列表:
選擇符 語法 示例 特性
通配選擇符 * *{ width:560px;} 0,0,0,0
類型選擇符 E1 td { font-size:12px;} 0,0,0,1
偽元素選擇符 :first-line :first-line{ font-size:12px;} 0,0,0,1
偽類選擇符 :link :link { font-size:12px;} 0,0,1,0
屬性選擇符 [attr] [title] {color:blue;} 0,0,1,0
ID選擇符 #ID #test{ font-size:12px;} 0,1,0,0
類選擇符 E1.className .test{color:blue;} 0,0,1,0
子對象選擇符 E1 E2 body p {color:blue;} E1+E2
相鄰選擇符 E1 + E2 div + p {color:blue;} E1+E2
選擇符分組 E1,E2,E3 .td1,a,body {color:blue;} E1+E2+E3
包含選擇符 E1 E2 table td {color:blue;} E1+E2
規(guī)則:
1. 行內(nèi)樣式優(yōu)先級Specificity值為1,0,0,0,高于外部定義。
如:div style=”color: red”test/div
外部定義指經(jīng)由link或style標(biāo)簽定義的規(guī)則;
2.!important聲明的Specificity值最高;
3.Specificity值一樣的情況下,按CSS代碼中出現(xiàn)的順序決定,后者CSS樣式居上;
4.由繼續(xù)而得到的樣式?jīng)]有specificity的計算,它低于一切其他規(guī)則(比如全局選擇符*定義的規(guī)則)。
算法:
當(dāng)遇到多個選擇符同時出現(xiàn)時候
按選擇符得到的Specificity值逐位相加,
{數(shù)位之間沒有進(jìn)制 比如說: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0}
就得到最終計算得的specificity,
然后在比較取舍時按照從左到右的順序逐位比較
———-以上內(nèi)容都是權(quán)重理論上的知識,按理說支持css2.1的瀏覽器應(yīng)該都遵循———-
IE6和IE7卻不完全是那么回事;這里說的IE7排除掉IE8的兼容模式。
1
2
3
4
5
6
7
8
a { /* 權(quán)重為[0,0,1] */
color: #00f;
background-color: #ff0;
}
a:hover { /* 權(quán)重為[0,1,1] */
color: #ff0;
background-color: #00f;
}
藍(lán)色字,黃色背景,鼠標(biāo)懸停的時候顏色顛倒
接下來,在添加規(guī)則
1
2
3
4
5
p a.cl1 { /* 權(quán)重為[0,1,2] */
color: #f00;
background-color: #0ff;
}
pa class="cl1" href="#".../a/p
紅色字,淺綠色背景,權(quán)重為 [0,1,2], 比第一條權(quán)重高
在IE6下”normal” (not hover) 的值被覆蓋了, 但是沒有覆蓋”hover”的值. 換句話說,權(quán)重為[0,1,1]的”hover”依然生效, 它沒有被比他權(quán)重高的p a.cl1 [0,1,2]所覆蓋 (但是沒有定義:hover偽類)
1
2
3
4
5
.cl2 a.cl3 { /* 權(quán)重為 [0,2,1] */
color: #f00;
background-color: #0ff;
}
p class="cl2"a class="cl3" href="#".../a/p
紅色字,淺綠色背景,權(quán)重為 [0,2,1], 比第一條規(guī)則”normal”和”hover”都要高
現(xiàn)在在IE6下不管是”normal”還是”hover”的值都被覆蓋了,這時候權(quán)重 [0,2,1] 完全覆蓋了權(quán)重 [0,1,1]
1
2
3
4
5
div p :hover { /* 權(quán)重為 [0,1,2] */
color: #f00;
background-color: #0ff;
}
divpa href="#".../a/p/div
當(dāng)鼠標(biāo)懸停在鏈接上的時候是紅色字,淺綠色背景 , 權(quán)重為 [0,1,2], 比第一條”hover”的權(quán)重 [0,1,1]高
第一條:hover完全被覆蓋,IE6也是一樣. 這個例子的權(quán)重 [0,1,2]和第二個例子的權(quán)重是一樣的,但是它多了對 偽類:hover的定義就能完全覆蓋第一條”hover”規(guī)則, 而第二個例子就不會覆蓋
演示地址:IE6/Win: 關(guān)于偽類:hover的權(quán)重問題
IE6/win下偽類:visited也存在類似問題,不再贅述,演示地址:IE6-/Win: 關(guān)于偽類:visited的權(quán)重問題
還有其他一些,在IE67下都會產(chǎn)生錯誤權(quán)重的情況,其他瀏覽器有條件的請幫忙測試一下:
1
2
3
4
5
6
7
p.c12 {/* 權(quán)重為[0.1.1] */
color: #c00;
}
div .c12 {/* 權(quán)重為[0.1.1] */
color: #090;
}
divp class="c12"el.class (red), el .class (green)? (錯誤顯示 IE67/Win, IE/Mac and Op7-顯示為紅色)/p/div
如果順序換過來el .class (red), el.class (green),就是正確的了
1
2
3
4
5
6
7
div .c24 {/* 權(quán)重為[0.1.1] */
color: #009900;
}
.c23 p {/* 權(quán)重為[0.1.1] */
color: #CC0000;
}
div class="c23"p class="c24".class el (red), el .class (green)? (錯誤顯示 IE67/Win, IE/Mac and Op7-顯示為紅色)/p/div
如果順序換過來el .class (red), .class el (green),就是正確的了
1
2
3
4
5
6
7
div #c28 {/* 權(quán)重為[1.0.1] */
color: #009900;
}
#c27 p {/* 權(quán)重為[1.0.1] */
color: #CC0000;
}
div id="c27"p id="c28"#id el (red), el #id (green)? (錯誤顯示 IE67/Win, IE/Mac and Op7-顯示為紅色)/p/div
如果順序換過來el #id (red), #id el (green),就是正確的了
:first-letter使用的比較少,這個例子就不寫了
1
2
3
4
5
6
7
8
p.c31 {/* 權(quán)重為[0.1.1] */
color: #c00;/* red */
}
body p.c31 {/* 權(quán)重為[0.1.2] */
color: #090;/* green */
color: miao;? /* 故意的錯誤 */
}
p class="c31"在IE67下會錯誤顯示紅色/p
演示地址:其他權(quán)重錯誤
一般情況是內(nèi)聯(lián)樣式級別最高,內(nèi)嵌其次,外部最低,如果同一元素在三個樣式中都有設(shè)定則為多重樣式的情況
在選擇器的情況下,內(nèi)聯(lián)樣式的權(quán)重是1000,ID選擇器的權(quán)重是100,class選擇器的權(quán)重是10.標(biāo)簽選擇器的權(quán)重是1,
如果權(quán)重相同則使用就近原則,后大于前
在同一組屬性設(shè)置中標(biāo)有“!important”規(guī)則的優(yōu)先級最大
可以這樣試試:
js不直接控制css樣式,如:.css('width','100px'),而是控制dom去獲得什么樣的class類,如:.attr('class','this_class that_class'),這樣關(guān)于css優(yōu)先級又回到了css里
網(wǎng)頁題目:css樣式權(quán),css樣式規(guī)則
網(wǎng)頁URL:http://chinadenli.net/article37/dsgghsj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站收錄、云服務(wù)器、做網(wǎng)站、微信小程序、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)