HTML中常見的選擇器及其優先級


在HTML中常見選擇器有:

行內選擇器、標簽選擇器、id選擇器、類選擇器(class)

內聯樣式

內聯樣式通過style將樣式直接寫在標簽里面;

格式為:style=“屬性1:屬性值1;屬性2:屬性值2;…”

例如:

  <div style="color:Red;"></div>

行內選擇器比較少用,原因是比較繁瑣,代碼比較少的時候可以考慮使用,但是代碼一多,就會導致看着很亂。

標簽選擇器

標簽選擇器就是利用標簽名通過內部樣式將標簽+樣式給表現出來;

格式為:標簽{ 樣式1;樣式2;…}

例如:

<style>  
  div{color:Red;}
</style>

使用標簽選擇器進行樣式設置將會改變該標簽下的所有格式。

ID選擇器

ID選擇器在標簽內定義一個id=“idname”,在內部樣式中使用 #idname{樣式} 的方式使用id選擇器。

例如:

<html>
<head>
  <title>id選擇器</title>
  <style type="text/css">
      #p1{
          color:blue;
          font-size:18px;
      }
  </style>
</head>
<body>
    <p id="p1"> 這是一段測試文本</p>
</body>
</html>

類選擇器(class)

類選擇器在標簽內定義一個class=“classname”,在內部樣式中使用 .classname{樣式} 的方式使用id選擇器。

例如:

<html>
<head>
  <title>類選擇器</title>
  <style type="text/css">
      .pclass{
          color:blue;
          font-size:18px;
      }
  </style>
</head>
<body>
    <p class="pclass"> 這是一段測試文本</p>
</body>
</html>

優先級

在css的優先規則中,優先級關系:內聯樣式 > ID 選擇器 > 類選擇器 > 標簽選擇器

<!DOCTYPE html>  
<html>
    <head>
        <meta charset="utf-8" />
        <title>HTML選擇器的優先級</title>
        <style type="text/css">
            p{
                color: green;/*綠色*/
            }

            .blue{
                color: blue;/*藍色*/
            }
            #red{
                color: red;/*紅色*/
            }
        </style>
    </head>
    <body>
        <h3>望廬山瀑布</h3>
        <p >日照香爐生紫煙,</p>
        <p class="blue">遙看瀑布掛前川。</p>
        <p class="blue" id="red">飛流直下三千尺,</p>
        <p class="blue" id="red" style="color: black;">疑是銀河落九天。</p>
    </body>
</html>

效果如圖:

從第一句到第四句可以很清楚的看到優先的變化是按照
行內樣式(最高級)>id選擇器>類選擇器>標簽選擇器 來變化的

Tip:屬性后插有 !important 的屬性擁有最高優先級,當搞不清楚優先級時,可以通過在屬性的后頭加入!important 來將該屬性提到最高優先級。

錯誤的說法

  在學習過程中,你可能發現給選擇器加權值的說法,即 ID 選擇器權值為 100,類選擇器權值為 10,標簽選擇器權值為 1,當一個選擇器由多個 ID 選擇器、類選擇器或標簽選擇器組成時,則將所有權值相加,然后再比較權值。這種說法其實是有問題的。比如一個由 11 個類選擇器組成的選擇器和一個由 1 個 ID 選擇器組成的選擇器指向同一個標簽,按理說 110 > 100,應該應用前者的樣式,然而事實是應用后者的樣式。錯誤的原因是:權重的進制是並不是十進制,CSS 權重進制在 IE6 為 256,后來擴大到了 65536,現代瀏覽器則采用更大的數量。。還是拿剛剛的例子說明。11 個類選擇器組成的選擇器的總權值為 110,但因為 11 個均為類選擇器,所以其實總權值最多不能超過 100, 你可以理解為 99.99,所以最終應用后者樣式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM