css選擇器的優先級以及用法

在 CSS 中,當多個選擇器同時作用于一個元素,并且為該元素的同一屬性設置了不同的值時,就需要依據選擇器的優先級來確定最終應用哪個樣式。本文詳細介紹 CSS 選擇器優先級的相關內容。

本文目錄

      • 一、單個選擇器的優先級
        • 1. 內聯樣式
        • 2. ID 選擇器
        • 3. 類選擇器、屬性選擇器和偽類選擇器
        • 4. 元素選擇器和偽元素選擇器
        • 5. 通用選擇器和組合器
      • 二、多個優先級計算規則
      • 三、!important 聲明

一、單個選擇器的優先級

1. 內聯樣式

直接寫在 HTML 元素的 style 屬性中的樣式。

<p style="color: red;">使用內聯樣式的段落</p>

優先級:內聯樣式具有最高的優先級,因為它直接作用于元素,會覆蓋其他所有類型選擇器定義的樣式。

2. ID 選擇器

通過元素的 id 屬性來選擇元素,使用 # 符號開頭。

<!DOCTYPE html>
<html lang="en"><head><style>#unique-paragraph {color: blue;}</style>
</head><body><p id="unique-paragraph">使用 ID 選擇器設置樣式的段落</p>
</body></html>

優先級:ID 選擇器的優先級僅次于內聯樣式,因為 id 在一個頁面中是唯一的,它能精確地定位到特定元素。

3. 類選擇器、屬性選擇器和偽類選擇器

類選擇器
通過元素的 class 屬性來選擇元素,使用 . 符號開頭。

<!DOCTYPE html>
<html lang="en"><head><style>.highlight {background-color: yellow;}</style>
</head><body><p class="highlight">使用類選擇器設置樣式的段落</p>
</body></html>

屬性選擇器
根據元素的屬性及其值來選擇元素,例如 [attribute=value] 的形式。

<!DOCTYPE html>
<html lang="en"><head><style>input[type="text"] {border: 1px solid gray;}</style>
</head><body><input type="text" placeholder="請輸入文本">
</body></html>

偽類選擇器
用于選擇處于特定狀態的元素,如 :hover(鼠標懸停狀態)、:active(元素被激活狀態)等。

<!DOCTYPE html>
<html lang="en"><head><style>a:hover {color: red;}</style>
</head><body><a href="#">鏈接</a>
</body></html>

優先級:類選擇器、屬性選擇器和偽類選擇器的優先級相同,它們的優先級低于 ID 選擇器,但高于元素選擇器。

4. 元素選擇器和偽元素選擇器

元素選擇器
通過元素的標簽名來選擇元素,如 ph1div 等。

<!DOCTYPE html>
<html lang="en"><head><style>p {font-size: 16px;}</style>
</head><body><p>使用元素選擇器設置樣式的段落</p>
</body></html>
  • 偽元素選擇器
    用于選擇元素的特定部分,如 ::first-line(選擇元素的第一行)、::first-letter(選擇元素的第一個字母)等。
<!DOCTYPE html>
<html lang="en"><head><style>p::first-line {color: green;}</style>
</head><body><p>第一行文字會顯示為綠色。</p>
</body></html>

優先級:元素選擇器和偽元素選擇器的優先級相同,是優先級較低的選擇器類型。

5. 通用選擇器和組合器

通用選擇器
使用 * 符號表示,它可以選擇頁面中的所有元素。

<!DOCTYPE html>
<html lang="en"><head><style>* {margin: 0;padding: 0;}</style>
</head><body><!-- 頁面內容 -->
</body></html>
  • 組合器:如 +(相鄰兄弟組合器)、~(通用兄弟組合器)、>(子組合器)、(后代組合器)等,它們本身不具有優先級,只是用于組合其他選擇器。
    優先級:通用選擇器的優先級是最低的,組合器的優先級取決于與之組合的選擇器。

二、多個優先級計算規則

當多個選擇器同時作用于一個元素時,可以通過計算每個選擇器的優先級得分來確定最終應用的樣式。通常采用以下規則來計算優先級:

  • 內聯樣式:計為 1000 分。
  • ID 選擇器:每個 ID 選擇器計為 100 分。
  • 類選擇器、屬性選擇器和偽類選擇器:每個計為 10 分。
  • 元素選擇器和偽元素選擇器:每個計為 1 分。
  • 通用選擇器:計為 0 分。

下面按照上面進行分析

<!DOCTYPE html>
<html lang="en"><head><style>/* 元素選擇器,優先級為 1 分 */p {color: black;}/* 類選擇器,優先級為 10 分 */.text-style {color: blue;}/* ID 選擇器,優先級為 100 分 */#special-paragraph {color: red;}</style>
</head><body><p>普通段落,文字顏色為黑色</p><p class="text-style">使用類選擇器設置樣式的段落,文字顏色為藍色</p><p id="special-paragraph" class="text-style">同時使用 ID 選擇器和類選擇器的段落,文字顏色為紅色,因為 ID 選擇器優先級更高</p>
</body></html>

第三個段落同時應用了 ID 選擇器和類選擇器,但由于 ID 選擇器的優先級(100 分)高于類選擇器(10 分),所以最終文字顏色為紅色。

三、!important 聲明

在 CSS 中,還可以使用 !important 聲明來強制應用某個樣式,無論該樣式的選擇器優先級如何。

p {color: green!important;
}

使用 !important 聲明的樣式會覆蓋其他所有樣式



← 上一篇 AngularJS知識快速入門(上)
記得點贊、關注、收藏哦!
下一篇 Ajax——在OA系統提升性能的局部刷新 →

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88657.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hercules zos 安裝 jdk 8

首先到 IBM 官網下載相關 PAX 檔 (SDK8_31bit_SR8_FP45.PAX.Z) 和 SDK8_31bit_readme.txt https://www.ibm.com/support/pages/java-sdk-products-zos 在 hercules 裡加一些新卷用來存放這個 JDK (UAPP02)&#xff0c;UTMP02 也可以順便加上讓 OMVS IBMUSER 下多一些存放空間&…

張量索引操作

一.前言本期我們來說一下張量的索引操作&#xff0c;需要掌握張量不同索引操作&#xff0c;我們在操作張量時&#xff0c;經常需要去進?獲取或者修改操作&#xff0c;掌握張量的花式索引操作是必須的?項能?。二.簡單行、列索引import torchdata torch.randint(0, 10, [4, 5…

docker 啟動中間件

docker 啟動 MySQL # 創建目錄 mkdir -p /Users/dongdong/software/mysql/{conf,data}docker run -d \ -p 3306:3306 \ -v /Users/dongdong/software/mysql/conf:/etc/mysql/conf.d \ -v /Users/dongdong/software/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -…

如何批量旋轉視頻90度?

用相機拍攝視頻的時候&#xff0c;原本是豎直拍的&#xff0c;但是放到電腦里面看的時候&#xff0c;卻變成了橫版的。如果我們需要放到剪映或者其他軟件做剪輯的時候&#xff0c;一個一個去旋轉視頻會比較麻煩&#xff0c;這里&#xff0c;我們可以事先用.bat文件批處理的方式…

(2025)IDEA 下載與安裝保姆級指南

目錄 一、下載 IntelliJ IDEA &#xff08;一&#xff09;訪問官方網站 &#xff08;二&#xff09;選擇版本 &#xff08;三&#xff09;下載安裝包 二、安裝 IntelliJ IDEA &#xff08;一&#xff09;運行安裝程序 &#xff08;二&#xff09;選擇安裝語言 &#xf…

【CV綜合實戰】基于深度學習的工業壓力表智能檢測與讀數系統【1】壓力表位置檢測

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

性能狂飆 Gooxi 8卡5090服務器重新定義高密度算力

國鑫Intel Eagle Stream平臺8卡RTX5090AI服務器性能到底有多強&#xff1f;小編一文帶你看懂個中奧妙。國鑫Intel Eagle Stream平臺8卡RTX5090AI服務器如圖&#xff0c;國鑫Intel Eagle Stream平臺8卡RTX5090AI服務器&#xff08;SY6108G-G4&#xff09;只有6U高度&#xff0c;…

零基礎掌握Go語言需要多久?報班的話哪家好?

大家有沒有發現&#xff0c;近年來&#xff0c;Go語言越來越受歡迎了&#xff0c;TIOBE榜單中&#xff0c;Go現在已經穩居前10了。 尤其在云計算、區塊鏈、微服務等領域&#xff0c;Go語言更是“欽點語言”&#xff0c;很多大廠也都在積極使用Go語言&#xff0c;薪資待遇更是連…

【網絡】Linux 內核優化實戰 - net.ipv4.tcp_no_metrics_save

目錄一、TCP連接指標緩存的作用二、tcp_no_metrics_save的取值及含義三、適用場景與影響推薦啟用緩存&#xff08;值為0&#xff09;的場景&#xff1a;推薦禁用緩存&#xff08;值為1&#xff09;的場景&#xff1a;實際影響&#xff1a;四、如何查看和修改參數1. 查看當前值2…

13. G1垃圾回收器

1. JVM介紹和運行流程-CSDN博客 2. 什么是程序計數器-CSDN博客 3. java 堆和 JVM 內存結構-CSDN博客 4. 虛擬機棧-CSDN博客 5. JVM 的方法區-CSDN博客 6. JVM直接內存-CSDN博客 7. JVM類加載器與雙親委派模型-CSDN博客 8. JVM類裝載的執行過程-CSDN博客 9. JVM垃圾回收…

算法學習筆記:13.歸并排序——從原理到實戰,涵蓋 LeetCode 與考研 408 例題

歸并排序是一種基于分治策略的經典排序算法&#xff0c;由約翰?馮?諾依曼在 1945 年提出。它以穩定的 O (nlogn) 時間復雜度和良好的可并行性&#xff0c;在大規模數據排序場景中占據重要地位。與快速排序的 “先分區后排序” 不同&#xff0c;歸并排序采用 “先排序后合并”…

Kotlin基礎學習記錄

變量和函數 變量 // val為常量&#xff0c;一旦賦值就不可變 val a 10 val a: Int 10 a 3 // 報錯// var為變量 var a 10 a 3 var b: Int 20 b 2函數fun add(a: Int, b: Int): Unit {a b // 報錯&#xff0c;參數默認val }fun add(a: Int, b: Int) {var x: Int ax b …

【C#】GraphicsPath的用法

在 C# 中&#xff0c;GraphicsPath 是 GDI 提供的一個非常強大的類&#xff0c;用于創建和操作復雜圖形路徑。它可以用來繪制直線、曲線、多邊形等形狀&#xff0c;并支持判斷點是否在路徑內或路徑的輪廓上。一、基本概念GraphicsPath 類功能&#xff1a;添加各種幾何圖形&…

C語言32個關鍵字

文章目錄數據類型1、數據類型&#xff08;12個&#xff09;控制語句2、控制語句關鍵字&#xff08;12個&#xff09;存儲類型3、存儲類型關鍵字&#xff08;4個&#xff09;其他關鍵字4、其他關鍵字&#xff08;4個&#xff09;?一共32個關鍵字分為 數據類型 1、數據類型&am…

粒子濾波|粒子濾波的相關算法理論介紹

在自動控制、導航、目標跟蹤等眾多領域&#xff0c;系統狀態估計是獲取真實狀態的關鍵環節。由于觀測信號常受噪聲干擾&#xff0c;濾波技術成為提取可靠信息的核心手段。本文將圍繞目標跟蹤技術中的濾波算法理論展開&#xff0c;重點解析粒子濾波框架的原理與應用。一、動態系…

Jenkins+Gitee+Docker容器化部署

寫在前文 本文主要是通過Jenkins的maven項目版本GiteeDocker-maven插件來進行部署的&#xff0c;本文沒有使用dockerfile/docker-compose。 本文默認已經安裝了Docker 1、安裝Jenkins Step1、創建文件夾當作映射jenkins的home文件夾 mkdir /app/jenkins Step2、賦權&#xff…

[Meetily后端框架] 多模型-Pydantic AI 代理-統一抽象 | SQLite管理

第5章&#xff1a;人工智能模型交互&#xff08;Pydantic-AI 代理&#xff09; 歡迎回來&#xff01; 在上一章第四章&#xff1a;文字記錄處理邏輯中&#xff0c;我們學習了TranscriptProcessor如何將冗長的會議記錄分解為稱為"塊"的較小片段&#xff0c;因為人工…

利用DeepSeek實現rust調用duckdb動態鏈接庫的duckdb CLI

提示詞&#xff1a;請用rust調用duckdb-rs實現一個duckdb CLI,支持語法突出顯示和計時&#xff0c;還支持命令行管道輸入輸出 Cargo.toml [package] name "duckdb-cli" version "0.1.0" edition "2024"[dependencies] duckdb "1.3.1&qu…

C++,從匯編角度看《虛擬繼承的邪惡》

刷到一篇文章&#xff1a; 作者&#xff1a; 原文&#xff1a;虛擬繼承的邪惡 討論到這樣的一個程序&#xff0c;最終輸出什么&#xff1f;&#xff1f;&#xff1f; 代碼有簡化命名 using namespace std;class A { public:A(int a 0) : v(a) {};int v; };template <type…

多 Agent 強化學習實踐指南(一):CTDE PPO 在合作捕食者-獵物游戲中的應用詳解

我們來詳細講解如何在合作捕食者-獵物游戲中結合 PPO (Proximal Policy Optimization) 算法。我們將聚焦于 CTDE&#xff08;Centralized Training, Decentralized Execution&#xff0c;集中訓練、分散執行&#xff09; 模式&#xff0c;因為這是處理合作多 Agent 任務的常用且…