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

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

權值問題,沒計算明白,求解答

p{color:red;}

.first{color:green;}

p>span{color:purple;}

span{color:pink;}

第一行權值為1,第二行權值為10,第三權值為2,第四行權值為0.1,為啥顯示的是紫色?而不是綠色?難道是在類選擇器的基礎上在進行包含選擇,所以權值為12 ,顯示紫色么?不是很明白權值的計算操作


正在回答

6 回答

做個實驗:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>特殊性</title>
<style type="text/css">

</style>
</head>
<body>
??? <h1>勇氣</h1>
??? <p class="first">三年級時,我還是一個<span>膽小如鼠</span>的小女孩,上課從來不敢回答老師提出的問題,生怕回答錯了老師會批評我。就一直沒有這個勇氣來回答老師提出的問題。學校舉辦的活動我也沒勇氣參加。</p>
??? <p id="second">到了三年級下學期時,我們班上了一節公開課,老師提出了一個很簡單的問題,班里很多同學都舉手了,甚至成績比我差很多的,也舉手了,還說著:"我來,我來。"我環顧了四周,就我沒有舉手。</p>
</body>
</html>


1.毫無疑問,這兩段文字打印出來是黑色的。

2.在<style>標簽中加入

???? p{color:red;}

結果:兩段文字都變成紅色。

分析:第一段,<p>里面包含了一個<span>,這樣,相對這兩個標簽而言,p是父標簽,span是子標簽;父標簽定義了css樣式,而子標簽沒有定義css樣式,那么,子標簽會繼承父標簽的css樣式,權值為0.1,所以span里的文字也為紅色。

3.再加入代碼,變成

???? p{color:red;}
???? .first{color:green;}

結果:第一段文字變成綠色,第二段文字是紅色。

分析:對于第一段文字,有標簽選擇器和類選擇器都適用,但是選擇哪個?類選擇器權值為10,應用類選擇器.first的規則,文字是綠色。對于第一段p標簽里的span標簽,仍會繼承父標簽p的樣式,權值為0.1,span里的文字也是綠色。

4.再加入代碼,變成 ?

???? p{color:red;}
???? .first{color:green;}

???? span{color:pink;}

結果:第一段文字是綠色,其中的“膽小如鼠”四個字是粉色;第二段文字是紅色。

分析:對于第一段p里的文字,應用的是.first里的css樣式,權值為10,而span標簽從父標簽p繼承到的樣式(綠色)權值為0.1,但這是span自己定義了標簽樣式,權值為1,是粉色,所以span應用自己的css樣式,里面的文字“膽小如鼠”是粉色。

5.繼續加入代碼:

???? p{color:red;}
???? .first{color:green;}
???? span{color:pink;}
???? p span{color:purple;}

結果,第一段文字為綠色,其中的“膽小如鼠”四字為紫色;第二段的文字為紅色。

分析:由4可知,第一個p標簽有兩個可選樣式,p標簽選擇器(權值1)和.first類選擇器(權值10),第一個p標簽應用的是.first類選擇器;對于其中的span標簽,此時有三個選擇器是適用的,但是選擇哪個呢?分別計算一下權值。第一個樣式,是從父選擇器繼承下來的樣式,是綠色,權值為0.1,第二個樣式,是span標簽自己的選擇器span{color:pink;},是粉色,權值為1,第三個樣式是組合選擇器的樣式p span{color:purple;},紫色,權值為1+1=2。這其中2>1>0.1,所以span里的文字“膽小如鼠”顏色是紫色。

6.繼續加入代碼

???? p{color:red;}
???? .first{color:green;}
???? span{color:pink;}
???? p span{color:purple;}
???? .first span{color: yellow;}

結果:第一段文字為綠色,其中“膽小如鼠”四字為黃色;第二段文字為紅色

分析:接5分析,針對第一段p標簽里的span而言,此時又多了一個選擇樣式,也是組合選擇器樣式,為黃色,權值為10+1=11,span應用此選擇器樣式。


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

魚魚魚喲

優秀啊
2019-03-21 回復 有任何疑惑可以回復我~

先比較范圍若范圍不一樣則以小范圍優先若范圍一樣比較權值 權值大優先 權值一樣內聯式優先

比如p>span這個子選擇器的意義是p標簽的第一代子標簽<span>全為紫色我們先來看范圍

這個p>span標簽的范圍和上面span的作用范圍一樣所以比較權值明顯看出前者大所以為紫色

再看p和.first范圍一樣比較權值明顯.first大所以整體為綠色

又因為span的作用范圍小所以顏色不受大范圍的標簽控制

個人理解 ? 錯誤請糾正

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

別去糾結了 ,先往后面學,就算是不會等你開發的時候又不得非要這樣子

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

span用了后代選擇器,p中所有的span都是紫色的

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

額,那個第三個是子代選擇器,它的權值高于同一級其他的,具體的可以參照CSDN的這篇文章https://blog.csdn.net/MYTLJP/article/details/78208465

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

肥宅風見嘯

也不能叫其他的,應該說是略高于基本選擇器
2018-07-22 回復 有任何疑惑可以回復我~

第三行寫錯了,所以權值也不是2,第三行應該寫為p span{color:purple;}才行

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

舉報

0/150
提交
取消
初識HTML(5)+CSS(3)-升級版
  • 參與學習       1228743    人
  • 解答問題       19080    個

HTML(5)+CSS(3)基礎教程8小時帶領大家步步深入學習標簽用法和意義

進入課程

權值問題,沒計算明白,求解答

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

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

幫助反饋 APP下載

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

公眾號

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