2025-09-04 CSS2——常見選擇器

文章目錄

  • 1 元素選擇器
  • 2 id 選擇器
  • 3 class 選擇器
  • 4 通用選擇器
  • 5 子元素選擇器
  • 6 后代選擇器
  • 7 相鄰兄弟選擇器
  • 8 后續兄弟選擇器
  • 9 偽類選擇器
  • 10 偽元素選擇器
  • 11 屬性選擇器
    • 11.1 `[attribute]`
    • 11.2 `[attribute="value"]`
    • 11.3 `[attribute~="value"]`與`[attribute*="value"]`
    • 11.4 `[attribute|="value"]`與`[attribute^="value"]`
    • 11.5 `[attribute$="value"]`

選擇器是 CSS 規則的開頭部分,用于 選擇要應用樣式的 HTML 元素。選擇器非常重要,因為它們決定了你的樣式會作用于哪些元素。

選擇器類型符號描述示例
元素選擇器p直接通過 HTML 標簽名來選擇所有同類元素。h2 { color: teal; }
ID 選擇器#通過元素的 id 屬性來選擇特定元素,一個 ID 在文檔中必須是唯一的。#element { font-size: 35px; }
class 選擇器.通過元素的 class 屬性來選擇元素,一個類可以被多個元素使用。.highlight { background-color: yellow; }
通用選擇器*選擇 所有 HTML 元素。常用于重置瀏覽器默認樣式。* { font-family: '楷體'; }
子元素選擇器>選擇直接位于父元素內部的子元素。它只選擇第一層級的子元素,不包括更深層級的后代。.father > p { color: yellowgreen; }
后代選擇器 (空格)選擇位于父元素內部的所有后代元素,無論層級有多深。它包括子元素、孫子元素等。.father p { color: coral; }
相鄰兄弟選擇器+選擇緊跟在指定元素后面的第一個同級元素h3 + p { background-color: red; }
后續兄弟選擇器~選取所有指定元素之后的相鄰兄弟元素h3 ~ p { background-color: red; }
偽類選擇器:選擇處于特定狀態或位置的元素,常用于用戶交互。:hover 偽類會在鼠標懸停時應用樣式。
偽元素選擇器::用于創建并樣式化虛擬元素,而不是選擇實際存在的元素。::before::after 用于在元素內容前后插入虛擬內容。
屬性選擇器[attribute=value]用于根據元素的屬性或屬性值來選擇 HTML 元素。[type] { border: 1px solid red; }

1 元素選擇器

通過元素名稱選擇 HTML 元素。

語法: element { /* 樣式 */ }

如下代碼,p 選擇器將選擇所有 <p> 元素:

p {color:red;text-align:center;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>p{color:red;text-align:center;} </style></head><body><p>Hello World!</p><p>這個段落采用CSS樣式化。</p></body>
</html>
image-20250904030548863

2 id 選擇器

id 選擇器可以為標有特定 id 的 HTML 元素指定特定的樣式,CSS 中 id 選擇器以 “#” 來定義。

語法: #id { /* 樣式 */ }

以下的樣式規則應用于元素屬性 id=“para1”:

#para1
{text-align:center;color:red;
}

ID屬性不要以數字開頭,數字開頭的ID在 Mozilla/Firefox 瀏覽器中不起作用。

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>#para1{text-align:center;color:red;} </style></head><body><p id="para1">Hello World!</p><p>這個段落不受該樣式的影響。</p></body>
</html>
image-20250904025514612

3 class 選擇器

class 選擇器用于描述一組元素的樣式,class 選擇器有別于 id 選擇器,class可以在多個元素中使用。

語法: .class { /* 樣式 */ }

在以下的例子中,所有擁有 center 類的 HTML 元素均為居中。

.center {text-align:center;}

你也可以指定特定的 HTML 元素使用 class。

在以下實例中, 所有的 p 元素使用 class=“center” 讓該元素的文本居中:

p.center {text-align:center;}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>p.center{text-align:center;}</style></head><body><h1 class="center">這個標題不受影響</h1><p class="center">這個段落居中對齊。</p> </body>
</html>
image-20250904025746855

4 通用選擇器

選擇所有 HTML 元素。通用選擇器使用 * 符號,選擇頁面上的所有元素。

語法: * { /* 樣式 */ }

以下實例選擇了所有元素:

* {background-color: #b0c4de;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>菜鳥教程(runoob.com)</title><style>* {background-color: #b0c4de;}</style></head><body><h1>我的 CSS web 頁!</h1><p>你好世界!這是來自 runoob 菜鳥教程的實例。</p></body>
</html>
image-20250904034620743

5 子元素選擇器

子元素選擇器使用大于號 >,它會選中直接位于父元素內部的子元素。它只選擇第一層級的子元素,不包括更深層級的后代元素。

語法: parent > child { /* 樣式 */ }

以下實例選擇了<div>元素中所有直接子元素 <p>

div>p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>div>p{background-color:yellow;}</style></head><body><h1>Welcome to My Homepage</h1><div><h2>My name is Donald</h2><p>I live in Duckburg.</p></div><div><span><p>I will not be styled.</p></span></div><p>My best friend is Mickey.</p></body>
</html>
image-20250904030911078

6 后代選擇器

后代選擇器使用空格,它會選中位于父元素內部的所有后代元素,無論層級有多深。這包括子元素、孫子元素、曾孫子元素等。

語法: ancestor descendant { /* 樣式 */ }

以下實例選取所有 <p> 元素插入到 <div> 元素中:

div p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>div p{background-color:yellow;}</style></head><body><div><p>段落 1。 在 div 中。</p><p>段落 2。 在 div 中。</p></div><p>段落 3。不在 div 中。</p><p>段落 4。不在 div 中。</p></body>
</html>
image-20250904030821740

7 相鄰兄弟選擇器

相鄰兄弟選擇器使用加號 +,它會選中緊跟在指定元素后面的第一個同級元素。這兩個元素必須擁有同一個父元素,并且選擇器中的第二個元素必須緊跟在第一個元素之后。

語法: element1 + element2 { /* 樣式 */ }

以下實例選取了所有位于 <div> 元素后的第一個 <p> 元素:

div+p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>div+p{background-color:yellow;}</style></head><body><h1>文章標題</h1><div><h2>DIV 內部標題</h2><p>DIV 內部段落。</p></div><p>DIV 之后的第一個 P 元素。</p><p>DIV 之后的第二個 P 元素。</p></body>
</html>
image-20250904031005536

8 后續兄弟選擇器

后續兄弟選擇器選取所有指定元素之后的相鄰兄弟元素。

以下實例選取了所有 <div> 元素之后的所有相鄰兄弟元素 <p>:

div~p
{background-color:yellow;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>div~p{background-color:yellow;}</style></head><body><p>之前段落,不會添加背景顏色。</p><div><p>段落 1。 在 div 中。</p><p>段落 2。 在 div 中。</p></div><p>段落 3。不在 div 中。</p><p>段落 4。不在 div 中。</p></body>
</html>
image-20250904031222249

9 偽類選擇器

CSS偽類用于選擇處于特定狀態或位置的元素,而不是基于它們的名稱、ID 或類名。偽類以冒號 : 開頭。它們常用于用戶交互,如鼠標懸停、鏈接訪問狀態等。

語法: selector:pseudo-class { /* 樣式 */ }

CSS類也可以使用偽類:

selector.class:pseudo-class { /* 樣式 */ }

在支持 CSS 的瀏覽器中,鏈接的不同狀態都可以以不同的方式顯示:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>a:link {color:#000000;}      /* 未訪問鏈接*/a:visited {color:#00FF00;}  /* 已訪問鏈接 */a:hover {color:#FF00FF;}  /* 鼠標移動到鏈接上 */a:active {color:#0000FF;}  /* 鼠標點擊時 */</style></head><body><p><b><a href="/css/" target="_blank">這是一個鏈接</a></b></p><p><b>注意:</b> a:hover 必須在 a:link 和 a:visited 之后,需要嚴格按順序才能看到效果。</p><p><b>注意:</b> a:active 必須在 a:hover 之后。</p></body>
</html>
image-20250904031932053

注意: 在 CSS 定義中,a:hover 必須被置于 a:link 和 a:visited 之后,才是有效的。

注意: 在 CSS 定義中,a:active 必須被置于 a:hover 之后,才是有效的。

**注意:**偽類的名稱不區分大小寫。

在下面的例子中,選擇器匹配所有作為元素的第一個子元素的 <p> 元素中的所有 <i> 元素:

p:first-child i
{color:blue;
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title> <style>p:first-child i{color:blue;} </style></head><body><p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p><p>I am a <i>strong</i> man. I am a <i>strong</i> man.</p><p><b>注意:</b> 當:first-child 作用于 IE8 及更早版本的瀏覽器, DOCTYPE 必須已經定義.</p></body>
</html>
image-20250904032119831

10 偽元素選擇器

CSS 偽元素是一種特殊的選擇器,它可以在不改變 HTML 結構的情況下對頁面元素的特定部分進行樣式設置。

偽元素用于創建并樣式化虛擬元素,這些元素在 HTML 文檔中并不實際存在。偽元素以雙冒號 :: 開頭。

語法: selector::pseudo-element { /* 樣式 */ }

CSS 類也可以使用偽元素:

selector.class::pseudo-element { /* 樣式 */ }

常用的 CSS 偽元素有 ::before::after::first-line::first-letter 等。

::before/::after 偽元素可以在元素的內容前面/后面插入新內容。

下面的例子在每個 <h1> 元素前面插入內容 "Before: ":

h1::before 
{content:"Before: ";
}

示例:

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>菜鳥教程(runoob.com)</title><style>h1::before {content: "Before";}</style></head><body><h1>This is a heading</h1><p>The :before pseudo-element inserts content before an element.</p><h1>This is a heading</h1><p><b>注意:</b>僅當 !DOCTYPE 已經聲明 IE8 支持這個內容屬性</p></body>
</html>
image-20250904033328349

11 屬性選擇器

CSS 屬性選擇器用于根據元素的屬性或屬性值來選擇 HTML 元素。

屬性選擇器可以幫助你在不需要為元素添加類或 ID 的情況下對其進行樣式化。

11.1 [attribute]

選擇帶有指定屬性的所有元素(無論屬性值是什么)。

/* 選擇所有具有 `type` 屬性的元素 */
[type] {border: 1px solid red;
}

下面的例子是把包含標題(title)的所有元素變為藍色:

<!DOCTYPE html>
<html><head><style>[title]{color:blue;}</style></head><body><h2>Will apply to:</h2><h1 title="Hello world">Hello world</h1><a title="runoob.com" href="https://www.runoob.com/">runoob.com</a><hr><h2>Will not apply to:</h2><p>Hello!</p></body>
</html>
image-20250904035047373

11.2 [attribute="value"]

選擇具有指定屬性和值完全匹配的元素。

/* 選擇所有 `type` 屬性等于 `text` 的元素 */
[type="text"] {background-color: yellow;
}

下面的實例改變了標題 title=‘runoob’ 元素的邊框樣式:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title>  <style>[title=runoob]{border:5px solid green;}</style></head><body><h2>將適用:</h2><img title="runoob" src="logo.png" width="270" height="50" /><br><a title="runoob" href="https://www.runoob.com/">runoob</a><hr><h2>將不適用:</h2><p title="greeting">Hi!</p><a class="runoob" href="https://www.runoob.com/">runoob</a></body>
</html>
image-20250904035245860

11.3 [attribute~="value"][attribute*="value"]

  • [attribute~="value"] 選擇屬性值中包含指定的獨立單詞 value(用空格分隔的詞列表之一)的元素。

    /* 選擇屬性值中包含單詞 `button` 的元素 */
    [class~="button"] {font-weight: bold;
    }
    
  • [attribute*="value"] 選擇屬性值中包含指定值的元素,不要求是獨立單詞。

    /* 選擇所有 `title` 屬性中連續包含 `tutorial` 的元素 */
    [title*="tutorial"] {font-style: italic;
    }
    

下面是包含指定值的title屬性的元素樣式的例子,使用(~)分隔屬性和值:

<!DOCTYPE html>
<html><head><meta charset="utf-8"> <title>菜鳥教程(runoob.com)</title>  <style>[title*=hello]{color:red;} [title~=hello]{color:blue;} </style></head><body><h2>~=:</h2><h1 title="hello world">Hello world</h1><p title="student hello">Hello CSS students!</p><hr><h2>*=:</h2><p title="student-hello">Hi CSS students!</p></body>
</html>
image-20250904040421711

11.4 [attribute|="value"][attribute^="value"]

  • [attribute|="value"]:選擇完整且唯一的單詞 value,或者以 value- 分隔開,常用于語言代碼。

    /* 選擇所有 `lang` 屬性是 `en` 或者以 `en-` 開頭的元素 */
    [lang|="en"] {color: green;
    }
    
  • [attribute^="value"]:選擇屬性值以指定值開頭的元素,不要求是獨立單詞。

    /* 選擇所有 `href` 屬性以 `https` 開頭的鏈接 */
    [href^="https"] {text-decoration: none;
    }
    

11.5 [attribute$="value"]

選擇屬性值以指定值結尾的元素,不要求是獨立單詞。

/* 選擇所有 src 屬性以 .jpg 結尾的圖片 */
[src$=".jpg"] {border: 2px solid blue;
}

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

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

相關文章

計算機網絡:概述層---OSI參考模型

&#x1f310; OSI七層參考模型詳解&#xff1a;從物理層到應用層的完整剖析 &#x1f4c5; 更新時間&#xff1a;2025年9月3日 &#x1f3f7;? 標簽&#xff1a;OSI模型 | 網絡協議 | 七層模型 | 計算機網絡 | 網絡架構 | 協議棧 | 王道考研 摘要: 本文將用最通俗易懂的語言&…

JVM相關 2|Java 垃圾回收機制(GC算法、GC收集器如G1、CMS)的必會知識點匯總

目錄&#xff1a;&#x1f9e0; 一、GC基礎概念1. 什么是垃圾回收&#xff08;Garbage Collection, GC&#xff09;&#xff1f;2. 判斷對象是否為垃圾的方法&#x1f9e9; 二、GC核心算法1. 標記-清除算法&#xff08;Mark-Sweep&#xff09;2. 標記-整理算法&#xff08;Mark…

04 - 【HTML】- 常用標簽(下篇)

表格標簽 1 表格 table 在HTML中&#xff0c;表格是通過<table>標簽來創建的&#xff0c;它允許在html中以行和列的形式組織數據。HTML提供了一套完整的標簽來創建功能豐富的表格。 2 表格的 結構 3 表格table代碼結構 4 表格結構解析 <thead></thead>&…

nVisual從入門到精通—應用實例

五、應用實例 5.1 數據中心的規劃設計 5.1.1 規劃設計流程5.1.2 創建模型庫 5.1.2.1 設備模型庫 設備模型庫基于組織內實際使用的設備型號進行構建&#xff0c;主要包含以下對象類型&#xff1a;機柜、網絡設備、板卡、組合模型。 設備屬性字段&#xff1a;除系統保留字段&…

代碼可讀性的詳細入門

&#x1f3e0;個人主頁&#xff1a;塵覺主頁 文章目錄前言一、可讀性的重要性二、用名字表達代碼含義三、避免名字歧義四、良好的代碼風格五、注釋的價值六、如何編寫注釋七、提高控制流的可讀性八、拆分長表達式九、變量與可讀性十、抽取函數十一、一次只做一件事十二、用自然…

輪軌法向接觸斑計算

輪軌法向接觸斑計算 &#xff0c;同時輸出 接觸斑面積、長軸 a、短軸 b、最大 Hertz 壓力 pmax 等關鍵指標 算法基于 Hertz 接觸理論&#xff08;適用于單點橢圓接觸&#xff09;&#xff0c;并給出如何擴展到 非 Hertz / 有限元驗證的提示。1 理論回顧&#xff08;Hertz 橢圓…

實習結束,秋招開啟

大家好&#xff0c;依舊是你們的老朋友仰望-星空~~&#xff0c;我又消失了3個月&#xff0c;快四個月了&#x1f604;&#xff0c;不少文章都 落灰了。這段時間其實一直在忙著找實習&#xff0c;然后準備面試題、刷算法、做項目啥的&#xff0c;也是比較忙碌的&#xff0c;也就…

14 C++ STL 容器實戰:stack/list 模擬實現指南 + priority_queue 用法及避坑技巧

stack和queuestack的模擬實現和應用--底層就是順序表從棧的接口中可以看出&#xff0c;棧實際是一種特殊的vector&#xff0c;因此使用vector完全可以模擬實現stack。#include<vector> namespace Stack { template<class T> class stack { public:stack() {}void p…

Linux基礎指令(入門必備2.0)

創作初心&#xff1a;在加深個人對知識系統理解的同時希望可以幫助到更多需要的同學 &#x1f604;柯一夢的專欄系列 &#x1f680;柯一夢的Gitee主頁 &#x1f6e0;?柯一夢主頁詳情 座右銘&#xff1a;心向深耕&#xff0c;不問階序&#xff1b;汗沃其根&#xff0c;花自滿枝…

《失落之魂》M站評分僅40?國產動作類游戲究竟何去何從?

前段時間頻頻預熱的國產動作游戲《失落之魂》已正式發售&#xff0c;外媒Push Square發布了該作的階段性評測。評測指出&#xff0c;盡管《失落之魂》在規模上已接近3A級&#xff0c;但能感受到其獨立制作的根基。這款游戲于2016年通過索尼“中國之星計劃”獲得支持&#xff0c…

一個專為地圖制圖和數據可視化設計的在線配色網站,可以助你制作漂亮的地圖!

ColorBrewer 是一個專為地圖制圖和數據可視化設計的在線配色工具&#xff0c;由賓夕法尼亞州立大學地理學教授 Cynthia Brewer 及其團隊開發 。 它提供了科學、美觀且考慮周全的配色方案&#xff0c;旨在幫助用戶&#xff08;無論是科研人員、設計師還是GIS分析師&#xff09;…

Python圖像處理基礎(十六)

Python圖像處理基礎(十六) 文章目錄 Python圖像處理基礎(十六) 10、圖像增強和濾鏡 10.1 ImageEnhance 10.1.1 亮度 10.1.2 對比度 10.1.3 顏色 10.1.4 清晰度 10.2 ImageFilter 10.3 預定義濾鏡 10.4 參數化濾鏡 10.4.1 模糊函數 10.4.2 反銳化蒙版 10.4.3 排序和平均濾波…

python中等難度面試題(1)

1、請解釋Python中的深拷貝(deep copy)和淺拷貝(shallow copy)的區別&#xff0c;并舉例說明它們在實際應用中可能引發的問題。 答&#xff1a; 在Python中&#xff0c;拷貝對象通常指的是創建一個新的對象&#xff0c;這個新對象是原始對象的一個副本。拷貝可以分為兩種類型&a…

AI+Java 守護你的錢袋子!金融領域的智能風控與極速交易

當你在異國他鄉用信用卡支付酒店費用&#xff0c;手機瞬間彈出銀行短信“是否為本人操作”&#xff1b;當你盯著股票行情軟件&#xff0c;看著某只股票的股價在3秒內從漲停跌至平盤&#xff0c;懊悔手動下單慢了一步——這些金融場景中的“安全感”與“遺憾”&#xff0c;背后都…

Docker跨架構部署實操第二彈

1. 項目內容 項目目錄包含 Dockerfile 與 main.py&#xff0c;并且容器內路徑固定為&#xff1a; 數據&#xff1a;/root/autodl-tmp/data模型&#xff1a;/root/autodl-tmp/models保存&#xff1a;/root/autodl-tmp/save 服務端口&#xff1a;9011&#xff08;容器內與宿主映…

PyTorch 學習率調度器(LR Scheduler)

文章目錄 PyTorch 學習率調度器&#xff08;LR Scheduler&#xff09;1. 一句話定義2. 通用使用套路3. 內置調度器對比速覽4. 各調度器最小模板① LambdaLR&#xff08;線性 warmup&#xff09;② StepLR③ MultiStepLR④ CosineAnnealingLR⑤ ReduceLROnPlateau&#xff08;必…

新后端漏洞(上)- Spring Cloud Gateway Actuator API SpEL表達式注入命令執行(CVE-2022-22947)

漏洞介紹&#xff1a;Spring Cloud Gateway是Spring中的一個API網關。其3.1.0及3.0.6版本&#xff08;包含&#xff09;以前存在一處SpEL表達式注入漏洞&#xff0c;當攻擊者可以訪問Actuator API的情況下&#xff0c;將可以利用該漏洞執行任意命令。漏洞環境&#xff1a;docke…

【OJ】C++ vector類OJ題

只出現過一次的數字&#xff08;簡單&#xff09; 136. 只出現一次的數字 - 力扣&#xff08;LeetCode&#xff09; 這道題使用異或就非常簡單了&#xff0c;所有數異或到一起&#xff0c;相同的數據雙雙消除&#xff0c;只剩下一個的數。 C語言異或運算詳解-CSDN博客 clas…

為什么外網主機可以telnet通內網nginx端口,但是http請求失敗?

問題是這樣的:我內網主機nginx配置了 域名80端口&#xff0c;然后防火墻沒有配置80端口&#xff0c;但是外網機子去telnet 80端口可以通&#xff0c;用瀏覽器請求域名不能訪問nginx&#xff0c;然后防火墻開了80端口后&#xff0c;瀏覽器就可以訪問nginx了&#xff0c;為什么防…

【Linux游記】基礎指令篇

?????? 楓の個人主頁 你不能改變過去&#xff0c;但你可以改變未來 算法/C/數據結構/C/Linux Hello&#xff0c;這里是小楓。C語言與數據結構和算法初階兩個板塊都更新完畢&#xff0c;我們繼續來學習C&#xff0c;C更新的同時我也會更新Linux。Linux操作系統是很經典的…