2. CSS選擇器與偽類

2.1 基本選擇器回顧

在開始介紹CSS3選擇器之前,我們先回顧一下CSS的基本選擇器。這些選擇器是所有CSS開發的基礎。

2.1.1 元素選擇器

元素選擇器用于選中指定類型的HTML元素。

/* 選中所有的<p>元素 */
p {color: blue;
}

2.1.2 類選擇器

類選擇器用于選中擁有特定類名的元素。類選擇器以句點(.)開頭。

/* 選中所有類名為"example"的元素 */
.example {color: red;
}

2.1.3 ID選擇器

ID選擇器用于選中擁有特定ID的元素。ID選擇器以井號(#)開頭。

/* 選中ID為"header"的元素 */
#header {background-color: green;
}

2.1.4 后代選擇器

后代選擇器用于選中某個元素的所有后代元素。

/* 選中所有在<div>內的<p>元素 */
div p {color: purple;
}

2.1.5 組選擇器

組選擇器用于選中多個選擇器對應的元素。

/* 選中所有的<h1>和<p>元素 */
h1, p {margin: 0;
}

2.2 CSS3新增選擇器

CSS3引入了許多新選擇器,使得選擇元素更加精確和靈活。

2.2.1 屬性選擇器

屬性選擇器允許你根據元素的屬性及其值來選中元素。

/* 選中所有屬性包含"example"的元素 */
a[href*="example"] {color: red;
}/* 選中所有屬性以"example"結尾的元素 */
a[href$="example"] {color: blue;
}/* 選中所有屬性以"example"開頭的元素 */
a[href^="example"] {color: green;
}

2.2.2 目標偽類選擇器

:target 選擇器用于選中當前活動的錨點目標。

/* 當鏈接目標被選中時改變其樣式 */
:target {background-color: yellow;
}

2.2.3 :nth-child() 選擇器

:nth-child() 選擇器允許開發者選中特定的子元素。

/* 選中每個第二個子元素 */
li:nth-child(2n) {background-color: lightgray;
}/* 選中每個第三個同類型的子元素 */
li:nth-of-type(3n) {color: blue;
}

2.3 偽類與偽元素

偽類和偽元素是CSS的重要特性,用于選擇不可見的元素或元素的某一部分。

2.3.1 偽類

偽類用于選中元素的特定狀態。

/* 選中鼠標懸停時的元素 */
a:hover {color: orange;
}/* 選中獲得焦點的輸入框 */
input:focus {border-color: blue;
}

2.3.2 偽元素

偽元素用于選擇元素的一部分,如首字母或內容前后的位置。

/* 選中<p>元素的首字母 */
p::first-letter {font-size: 2em;color: red;
}/* 在每個<p>元素的內容前插入內容 */
p::before {content: "Note: ";font-weight: bold;
}

2.4 選擇器的優先級與最佳實踐

選擇器的優先級決定了當多個選擇器匹配同一個元素時,哪個選擇器的樣式會被應用。了解選擇器的優先級對編寫高效的CSS代碼非常重要。

2.4.1 選擇器優先級規則

優先級由四個部分組成,從高到低依次是:內聯樣式、ID選擇器、類選擇器/屬性選擇器/偽類、元素選擇器/偽元素。

/* 內聯樣式優先級最高 */
<style><div style="color: red;">內聯樣式</div>
</style>/* ID選擇器 */
#id {color: blue; /* 優先級為 0, 1, 0, 0 */
}/* 類選擇器 */
.class {color: green; /* 優先級為 0, 0, 1, 0 */
}/* 元素選擇器 */
div {color: yellow; /* 優先級為 0, 0, 0, 1 */
}

2.4.2 注意事項

  1. 避免過度使用ID選擇器:ID選擇器優先級很高,不易覆蓋,盡量使用類選擇器。
  2. 結構清晰:確保CSS代碼結構清晰,選擇器簡潔易懂。
  3. 使用后代選擇器謹慎:后代選擇器的優先級較高,過多使用會導致樣式難以維護。
  4. 利用瀏覽器開發工具:使用瀏覽器開發工具(如Chrome DevTools)來調試和查看選擇器優先級。

2.5 選擇器的優先級與最佳實踐

選擇器的優先級決定了當多個選擇器匹配同一個元素時,哪個選擇器的樣式會被應用。了解選擇器的優先級對編寫高效的CSS代碼非常重要。

2.5.1 選擇器優先級規則

優先級由四個部分組成,從高到低依次是:內聯樣式、ID選擇器、類選擇器/屬性選擇器/偽類、元素選擇器/偽元素。

/* 內聯樣式優先級最高 */
<style><div style="color: red;">內聯樣式</div>
</style>/* ID選擇器 */
#id {color: blue; /* 優先級為 0, 1, 0, 0 */
}/* 類選擇器 */
.class {color: green; /* 優先級為 0, 0, 1, 0 */
}/* 元素選擇器 */
div {color: yellow; /* 優先級為 0, 0, 0, 1 */
}

2.5.2 注意事項

  1. 避免過度使用ID選擇器:ID選擇器優先級很高,不易覆蓋,盡量使用類選擇器。
  2. 結構清晰:確保CSS代碼結構清晰,選擇器簡潔易懂。
  3. 使用后代選擇器謹慎:后代選擇器的優先級較高,過多使用會導致樣式難以維護。
  4. 利用瀏覽器開發工具:使用瀏覽器開發工具(如Chrome DevTools)來調試和查看選擇器優先級。

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

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

相關文章

03自動輔助導航駕駛NOP其實就是NOA

蔚來NOP是什么意思&#xff1f;蔚來NOP是啥 蔚來NOP的意思就是NavigateonPilot智能輔助導航駕駛&#xff0c;也就是大家俗稱的高階輔助駕駛&#xff0c;在車主設定好導航路線&#xff0c;并且符合開啟NOP條件的前提下&#xff0c;蔚來NOP可以代替駕駛員完成從A點到B點的智能輔助…

深入理解數倉開發(二)數據技術篇之數據同步

1、數據同步 數據同步我們之前在數倉當中使用了多種工具&#xff0c;比如使用 Flume 將日志文件從服務器采集到 Kafka&#xff0c;再通過 Flume 將 Kafka 中的數據采集到 HDFS。使用 MaxWell 實時監聽 MySQL 的 binlog 日志&#xff0c;并將采集到的變更日志&#xff08;json 格…

【二叉樹】:LeetCode:100.相同的數(分治)

&#x1f381;個人主頁&#xff1a;我們的五年 &#x1f50d;系列專欄&#xff1a;初階初階結構刷題 &#x1f389;歡迎大家點贊&#x1f44d;評論&#x1f4dd;收藏?文章 1.問題描述&#xff1a; 2.問題分析&#xff1a; 二叉樹是區分結構的&#xff0c;即左右子樹是不一…

[JDK工具-6] jmap java內存映射工具

文章目錄 1. 介紹2. 主要選項3. 生成java堆轉儲快照 jmap -dump4. 顯示堆詳細信息 jmap -heap pid5. 顯示堆中對象統計信息 jmap -histo pid jmap(Memory Map for Java) 1. 介紹 位置&#xff1a;jdk\bin 作用&#xff1a; jdk安裝后會自帶一些小工具&#xff0c;jmap命令(Mem…

PySide6升級導致的Fatal Python error: could not initialize part 2問題及其解決方法

問題出現 把PySide6從6.6.1升級到6.7.1&#xff0c;結果運行程序的時候就報如下錯誤&#xff1a; Traceback (most recent call last): File "signature_bootstrap.py", line 77, in bootstrap File "signature_bootstrap.py", line 93, in find_inc…

Kafka SASL_SSL集群認證

背景 公司需要對kafka環境進行安全驗證,目前考慮到的方案有Kerberos和SSL和SASL_SSL,最終考慮到安全和功能的豐富度,我們最終選擇了SASL_SSL方案。處于知識積累的角度,記錄一下kafka SASL_SSL安裝部署的步驟。 機器規劃 目前測試環境公搭建了三臺kafka主機服務,現在將詳…

H3CNE-7-TCP和UDP協議

TCP和UDP協議 TCP&#xff1a;可靠傳輸&#xff0c;面向連接 -------- 速度慢&#xff0c;準確性高 UDP&#xff1a;不可靠傳輸&#xff0c;非面向連接 -------- 速度快&#xff0c;但準確性差 面向連接&#xff1a;如果某應用層協議的四層使用TCP端口&#xff0c;那么正式的…

智能家居完結 -- 整體設計

系統框圖 前情提要: 智能家居1 -- 實現語音模塊-CSDN博客 智能家居2 -- 實現網絡控制模塊-CSDN博客 智能家居3 - 實現煙霧報警模塊-CSDN博客 智能家居4 -- 添加接收消息的初步處理-CSDN博客 智能家居5 - 實現處理線程-CSDN博客 智能家居6 -- 配置 ini文件優化設備添加-CS…

【MySQL】聊聊count的相關操作

在平時的操作中&#xff0c;經常使用count進行操作&#xff0c;計算統計的數據。那么具體的原理是如何的&#xff1f;為什么有時候執行count很慢。 count的實現方式 select count(*) from student;對于MyISAM引擎來說&#xff0c;會把一個表的總行數存儲在磁盤上&#xff0c;…

Linux下Vision Mamba環境配置+多CUDA版本切換

上篇文章大致講了下Vision Mamba的相關知識&#xff0c;網上關于Vision Mamba的配置博客太多&#xff0c;筆者主要用來整合下。 筆者在Win10和Linux下分別嘗試配置相關環境。 Win10下配置 失敗 \textcolor{red}{失敗} 失敗&#xff0c;最后出現的問題如下&#xff1a; https://…

基于物聯網架構的電子小票服務系統

1.電子小票物聯網架構 采用感知層、網絡層和應用層的3層物聯網體系架構模型&#xff0c;電子小票物聯網的架構見圖1。 圖1 電子小票物聯網架構 感知層的小票智能硬件能夠取代傳統的小票打印機&#xff0c;在不改變商家原有收銀系統的前提下&#xff0c;采集收音機待打印的購物…

react中的數據驅動視圖,useState()的使用

前端開發如今有一個很重要的思想就是數據驅動視圖&#xff0c;數據發生變化使ui發生變化&#xff0c;比如一個變量count&#xff0c;為0顯示三個按鈕&#xff0c;為1顯示一個按鈕&#xff0c;為2顯示兩個按鈕。這就是一個簡單的數據驅動視圖。 import { useState } from reactf…

修改 ant design tour 漫游式導航的彈窗邊框樣式

一 說明 應項目要求&#xff0c;調整ant design tour 彈窗邊框的樣式。tour 原本樣式是有遮罩層&#xff0c;因此沒有邊框看起來也不突兀。原圖如下&#xff1a; 但是UI設計是取消遮罩層&#xff0c;并設置邊框樣式。當 取消 了遮罩層&#xff0c;沒有設置邊框樣式的圖片如下&a…

python考試成績管理與分析:從列表到方差

新書上架~&#x1f447;全國包郵奧~ python實用小工具開發教程http://pythontoolsteach.com/3 歡迎關注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目錄 一、考試成績的輸入與列表管理 二、成績的總分與平均成績計算 三、成績方差的計算 四、成…

雙指針用法練習題(2024/5/26)

1三數之和 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k &#xff0c;同時還滿足 nums[i] nums[j] nums[k] 0 。請 你返回所有和為 0 且不重復的三元組。 注意&#xff1a;答案中不可以包含重復的三元…

人工智能場景下的網絡負載均衡技術

AI技術驅動智能應用井噴&#xff0c;智能算力增速遠超通用算力。IDC預測&#xff0c;未來五年&#xff0c;我國智能算力規模年復合增長率將超50%&#xff0c;開啟數據中心算力新紀元。隨著需求激增&#xff0c;數據中心或智算網絡亟需擴容、增速、減時延&#xff0c;確保網絡穩…

rockylinux 利用nexus 搭建私服yum倉庫

簡單說下為啥弄這個私服&#xff0c;因為自己要學習一些東西&#xff0c;比如新版的k8s等&#xff0c;其中會涉及到一些yum的安裝&#xff0c;為了防止因網絡問題導致yum安裝失敗&#xff0c;和重復下載&#xff0c;所以弄個私服&#xff0c;當然也有為了意外保障的想法&#x…

【實戰JVM】-基礎篇-01-JVM通識-字節碼詳解

【實戰JVM】-基礎篇-01-JVM通識-字節碼詳解-類的聲明周期-加載器 1 初識JVM1.1 什么是JVM1.2 JVM的功能1.2.1 即時編譯 1.3 常見JVM 2 字節碼文件詳解2.1 Java虛擬機的組成2.2 字節碼文件的組成2.2.1 正確打開字節碼文件2.2.2 字節碼組成2.2.3 基礎信息2.2.3.1 魔數2.2.3.1 主副…

【C++】右值引用 移動語義

目錄 前言一、右值引用與移動語義1.1 左值引用和右值引用1.2 右值引用使用場景和意義1.3 右值引用引用左值及其一些更深入的使用場景分析1.3.1 完美轉發 二、新的類功能三、可變參數模板 前言 本篇文章我們繼續來聊聊C11新增的一些語法——右值引用&#xff0c;我們在之前就已…