搜尋
首頁web前端css教學css優先權怎麼計算?帶你深入了解什麼是CSS優先級

css優先權對於某些朋友來說可能會感覺不太好理解,所以這篇文章將帶大家來深入了解一下css的樣式優先級以及css選擇器優先級的計算方法。

對於css樣式優先權理解它的最佳方法是從一個例子開始。然後我們將仔細研究如何計算實際優先順序以確定哪個選擇器優先順序。

PS:推薦學習:CSS影片教學

下面是一個簡單的無序列表:

<ul id="summer-drinks">
   <li>汽水</li>
   <li>啤酒</li>
   <li>果汁</li></ul>

如果現在你要指定其中一種你喜歡的飲料並改變它的樣式。你可以透過list元素上的類別名稱來應用它。

<ul id="summer-drinks">
   <li class="favorite">汽水</li>
   <li>啤酒</li>
   <li>果汁</li></ul>

現在你就可以在css中為它加上樣式

.favorite {
  color: red;
  font-weight: bold;
}

然後你看你的實作效果會發現這個樣式它沒有作用!你選擇添加樣式的飲料並沒有變成紅色,字體也沒有加粗

仔細觀察css中的程式碼你會發現,有兩個選擇器

ul#summer-drinks li {
   font-weight: normal;
   font-size: 12px;
   color: black;}

兩個不同的CSS選擇器都定義了文字顏色和字體重量。字體大小只有一個聲明,所以很明顯一個會生效。這些不是“衝突”,但瀏覽器確實需要決定這些定義了的內容中需要實現哪一個。這就需要透過遵循一套標準的優先級規則來實現。

這可能會讓一些初學者感到困惑,因為他們尚未完全解決這個問題。他們可能會認為因為.favorite語句“ 在CSS中更進一步 ”,或者因為class =“favorite ”在HTML中“ 更接近實際文本 ”,將是優先的。實際上,CSS中選擇器的順序確實發揮了作用,當優先順序完全相同時,後來定義的內容實際上是先執行的,例如:

.favorite {
   color: red;
}
.favorite {
   color: green;
}

執行的結果字體的顏色會變綠

這裡的要點是你希望盡可能具體的理解。即使有上面​​提到的簡單例子,最終你會明白,僅僅使用一個類名來定位「最喜歡的飲料」並不會削減它,或者即使它確實起作用也不會很安全。可以使用以下方法具體定義:

ul#summer-drinks li.favorite {
  color: red;
  font-weight: bold;
}

這就是我所說的「具體而言才有意義」。你實際上可能更具體,並使用這樣的東西:

html body div#pagewrap ul#summer-drinks li.favorite {
  color: red;
  font-weight: bold;
}

但有時程式碼會很長。它會使的CSS程式碼的閱讀性降低,並沒有產生任何實際好處。為“.favorite”類別提取特異性值的另一種方法是使用! important聲明。

.favorite {
  color: red !important;
  font-weight: bold !important;
}

我曾經聽過! important是CSS的絕地思維技巧。也確實如此,您可以透過使用它來強制您的元素樣式。但是,透過大幅提高特定選擇者使用的特殊性,將會產生一些不必要的問題。如果被錯誤理解,那麼! important聲明很容易被濫用。它最好用於保持CSS整潔,例如,您知道具有特定類別選擇器的元素應該使用某種樣式集。相反,不僅用作快速的使用方法來覆蓋某些東西的樣式,而不是弄清楚原始作者如何構造和使用CSS。

我的一個經典例子是:

.last {
   margin-right: 0 !important;
}

計算CSS選擇器優先權

為什麼我們第一次嘗試更改顏色和字體重量失敗了?正如我們所了解的那樣,這是因為簡單地使用類別名稱本身俱有較低的優先級,並且被另一個選擇器覆蓋,該選擇器使用ID值定位無序列表。該句中的重要字詞是類別和id。 CSS對類別和ID應用了截然不同的優先權權重。事實上,ID具有無限的優先權價值!也就是說,沒有任何類別的優先順序可以超過ID。

我們來看看數字的實際計算方式:

css優先權怎麼計算?帶你深入了解什麼是CSS優先級

換一種說法:

如果元素具有內聯樣式,則自動1勝(1,0,0,0分)

對於每個ID值,應用0,1,0,0個點

#對於每個類別值(或偽類或屬性選擇器),應用0,0,1,0點

對於每個元素引用,套用0,0,0,1點

您通常可以讀取值,就好像它們只是一個數字,如1,0,0,0是“1000”,因此顯然勝過0,1,0,0或“100”的特異性。逗號是在那裡提醒我們,這不是一個真正的“基礎10”系統,因為你在技術上可以具有類似0,1,1,3,4的優先值- 並且“13”不會溢出基礎10系統會。

樣本計算

css優先權怎麼計算?帶你深入了解什麼是CSS優先級

css優先權怎麼計算?帶你深入了解什麼是CSS優先級

css優先權怎麼計算?帶你深入了解什麼是CSS優先級

#########

not()sort-of-pseudo-class本身不具有任何優先級,只將parens中的內容添加到優先值中。

css優先權怎麼計算?帶你深入了解什麼是CSS優先級

css優先權怎麼計算?帶你深入了解什麼是CSS優先級

重要說明

#通用選擇器(*)沒有優先權值(0 ,0,0,0)

偽元素(例如:第一行)獲得0,0,0,1不像他們的偽類兄弟獲得0,0,1,0

#偽類:not()本身不具有任何優先級,只是它的括號內的內容。

附加CSS屬性值的! important值是自動獲勝。它甚至覆蓋了標記中的內聯樣式。可以覆蓋! important值的唯一方法是使用CSS中稍後聲明的另一個! important規則,否則具有相同或更大的特異性值。您可以將其視為將特定值添加1,0,0,0,0。

以上是css優先權怎麼計算?帶你深入了解什麼是CSS優先級的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
錨定位只是不關心來源訂單錨定位只是不關心來源訂單Apr 29, 2025 am 09:37 AM

錨定定位避開HTML源順序的事實是如此之高,因為它在內容和演示文稿之間的另一個關注點是另一個分離的事實。

保證金是什麼:40px 100px 120px 80px表示?保證金是什麼:40px 100px 120px 80px表示?Apr 28, 2025 pm 05:31 PM

文章討論了CSS保證金屬性,特別是“保證金:40px 100px 120px 80px”,其應用程序以及對網頁佈局的影響。

什麼是不同的CSS邊框特性?什麼是不同的CSS邊框特性?Apr 28, 2025 pm 05:30 PM

本文討論了CSS邊境屬性,重點是自定義,最佳實踐和響應能力。主要論點:邊境 - 拉迪烏斯(Border-Radius)對響應式設計最有效。

什麼是CSS背景,列出屬性?什麼是CSS背景,列出屬性?Apr 28, 2025 pm 05:29 PM

本文討論了CSS背景屬性,它們在增強網站設計方面的用途以及避免的常見錯誤。重點是使用背景大小的響應式設計。

什麼是CSS HSL顏色?什麼是CSS HSL顏色?Apr 28, 2025 pm 05:28 PM

文章討論了CSS HSL顏色,其在網絡設計中的使用以及比RGB的優勢。主要重點是通過直觀的顏色操縱來增強設計和可訪問性。

我們如何在CSS中添加評論?我們如何在CSS中添加評論?Apr 28, 2025 pm 05:27 PM

本文討論了CSS中評論的使用,詳細介紹了單線和多行評論語法。它認為註釋可以增強代碼的可讀性,可維護性和協作,但如果無法正確管理,可能會影響網站性能。

什麼是CSS選擇器?什麼是CSS選擇器?Apr 28, 2025 pm 05:26 PM

本文討論了CSS選擇器,其類型和用於造型HTML元素的用法。它比較ID和類選擇器,並與復雜的選擇器解決性能問題。

哪種類型的CSS持有最高優先級?哪種類型的CSS持有最高優先級?Apr 28, 2025 pm 05:25 PM

本文討論了CSS優先級,重點是具有最高特異性的內聯風格。它解釋了特異性級別,覆蓋方法和用於管理CSS衝突的工具。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),