亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

選擇器樣式覆蓋

<style type="text/css">

h1,span{color:red;}

.first,#second>span{color:blue;}

</style>

為什么設置了.first的樣式為藍色后,.first里面的子選擇器span仍舊是紅色呢?這兩個真正的樣式到底是怎樣一種規定?

正在回答

4 回答

回復 kevine099:好吧我看錯了,有一個名詞你得知道,叫做特殊性,相關內容你可以看第九章的內容或者看《CSS權威指南》的第三章。簡單地說,當樣式選擇存在競爭時,特殊性高的會勝出。

span{color:blue;}

這里的樣式的特殊性為0,0,0,1 ? 而繼承值根本沒有特殊性(注意沒有特殊性比特殊性為0還要低)??!所以span從h1里繼承的樣式會被另外一個樣式干掉。

這樣說可以么,我怕我說的不夠簡練

0 回復 有任何疑惑可以回復我~
#1

用戶nlk9a8o0e0

換句話說,只要對一個元素進行了樣式處理,哪怕是通過通配選擇器(統配選擇器的特殊性為0),它的級別都會高于從父類繼承值的特殊性。
2016-04-07 回復 有任何疑惑可以回復我~
#2

kevine099 提問者 回復 用戶nlk9a8o0e0

你的意思是說span的顏色顯示為外層p樣式是屬于繼承,而繼承的優先級最低是吧?
2016-04-07 回復 有任何疑惑可以回復我~
#3

用戶nlk9a8o0e0 回復 kevine099 提問者

可以這么說
2016-04-08 回復 有任何疑惑可以回復我~
#4

kevine099 提問者

非常感謝!
2016-04-08 回復 有任何疑惑可以回復我~
查看1條回復

我再舉一個簡單的例子來說明繼承父類的值的特殊性真的很低

<!DOCTYPE?html>
<html>
<head>
<meta?charset="UTF-8"?/>
<title>Document</title>
<style?type="text/css">
body{
color:red;
}
</style>
</head>
<body>
<p>
aaaaaaaaaa<a?href="www.baidu.com">baidu</a>aaaaaaaaaa
</p>
</body>
</html>

這是一個很簡單的例子,給body設置樣式color:red; ?但是效果是這樣的http://img1.sycdn.imooc.com//57066b130001b59b02090039.jpg

在這里我并沒有對<a>標簽進行任何處理,為什么它還是變藍了,因為瀏覽器會默認給<a>一個樣式

a:link{color:blue;}

所以鏈接的顏色還是藍色并沒有變紅

0 回復 有任何疑惑可以回復我~
.first,#second>span{color:blue;}

你這樣.first里面的子選擇器span當然是紅色的,#second>span這個是選擇id為second元素的span子選擇器,id為second的只有第二段,當然就第二段里的span是藍色的

.first,span{color:blue;}

這樣所有的就是藍色的了

0 回復 有任何疑惑可以回復我~
#1

kevine099 提問者

不是,你沒有理解我的意思。不管second那一段,只管first這一段。<p class="first">我是<span>中國人</span>民</p>這句話中,我設置了span是紅色,然后我再設置.first是藍色,顯示出來為什么span是紅色而不是藍色呢?它是first的后代???
2016-04-07 回復 有任何疑惑可以回復我~
#2

Evey_Wong 回復 kevine099 提問者

我認為應該是樣式優先級吧,感覺上來講是這樣的。因為行內樣式>內部樣式>外部樣式.總之一句話就是就近原則
2016-04-07 回復 有任何疑惑可以回復我~

.first,span{ color:green;}

#second span{ color:green;}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

選擇器樣式覆蓋

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號