有的時候我們為同一個元素設定了不同的CSS樣式程式碼,那麼元素會啟用哪一個CSS樣式呢?我們來看一下面的程式碼
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>特殊性</title> <style type="text/css"> p{color:red;} .first{ color:green; /*因为权值高显示为绿色*/ } span{ color:pink; /*设置为粉色*/ } </style> </head> <body> <h1>勇气</h1> <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小孩, 上课从来不敢回答老师提出的问题,生怕回答错了老师会批评我。就一直没有这个勇气来回答老师提出的问题。学校举办的活动我也没勇气参加。</p> <p id="second">到了三年级下学期时,我们班上了一节公开课,老师提出了一个很简单的问题,班里很多同学都举手了,甚至成绩比我差很多的, 也举手了,还说着:"我来,我来。"我环顾了四周,就我没有举手。</p> </body> </html>
p和.first都符合到了p這個標籤上,那麼會顯示哪一種顏色呢? green是正確的顏色,那為什麼呢?是因為瀏覽器是根據權值來判斷使用哪一種css樣式的,權值高的就用哪種css樣式。
下面是權值的規則:
標籤的權值為1,類別選擇符的權值為10,ID選擇符的權值最高為100。例如下面的程式碼
p{color:red;} /*權值為1*/
#p span{color:green;} /*權值為1+1=2* /
.warning{color:white;} /*權值為10*/
p span.warning{color:purple;} /*權值為1+1+10= 12*/
#footer .note p{color:yellow;} /*權值為100+10+1=111*/