要使用css對HTML頁面中的元素實作一對一,一對多或多對一的控制,這就需要用到CSS選擇器。 HTML頁面中的元素就是透過CSS選擇器來控制的。本文主要介紹了CSS 學習筆記之CSS Selector的相關資料,需要的朋友可以參考下,希望能幫助到大家。
CSS1 中定義的選擇器
類型選擇器
#用來選擇指定類型的元素(其實他就是html 標籤選擇器),常見用法如下:
body { /*对 body 元素定义样式*/ } body,p { /*同时选择多种标签元素*/ }
ID 選擇器
用於選擇指定ID 的html 元素,常見使用方法如下:
<p> </p> <style> #nav { /*定义 ID 为 nav 的元素的样式*/ } </style>
因為CSS 的渲染順序是從右往左渲染的,而ID 則是全唯一的,那麼就可以省略掉前面的類型選擇器。
類別選擇器
用於選擇指定類別名稱的html 元素,常見使用方法如下:
<p> </p> <style> .nav { /*定义 class 为 nav 的元素的样式*/ } </style>
包含選擇器
使用於選擇層級嵌套的元素,常見使用方法如下:
<p> </p><p> </p> <p> </p><p> </p><p> </p> <style> .nav .nav-tools { /*定义元素的父级元素 class 包含 nav,且子元素class 包含 nav-tools 的元素*/ } </style>
要注意的是:包含選擇器不關心層級,只要後面的選擇器是被包含在前一個元素中的可以。如上述例子,兩個 nav-tools 都會被選擇器選中!
偽類選擇器
:link-連結偽類選擇器
#用於定義連結未被存取狀態時的樣式,常見使用方法如下:
<p> </p><p> </p>
:visited——連結偽類選擇器
用於定義已被存取的連結樣式,常見使用方法如下:
<style> a:visited { text-decoration: none; color: red; } </style>
:active——用戶操作偽類選擇器
用來定義被啟動的元素樣式,常見使用方法如下:
<style> a:active { text-decoration: none; color: green; } </style>
:hover-使用者操作偽類選擇器
用於定義滑鼠經過元素是的樣式,常見使用方法如下:
<style> a:hover { text-decoration: none; background-color: #F4F4F4; } </style>
:focus-使用者操作偽類別選擇器
用於定義獲得焦點的元素樣式,常見使用方法如下:
<style> input:focus { text-decoration: none; background-color: #F4F4F4; } </style>
::first-line
用於定義元素內第一行文字的樣式,常見使用方法如下:
<p> </p><p>层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。</p> <style> .doc { width: 360px; } .doc>p::first-line { color: red; } </style>
::=first-letter
用於定義元素內第一個字元的樣式,常見使用方式如下:
<style> .doc { width: 360px; } .doc>p::first-letter { font-size: 2em; color: red; } </style>
CSS2中定義的選擇器
*-通配選擇器
用於定義DOM 中所有元素的共同樣式,常見使用方法如下:
<p> </p><p> </p>
如果要重設預設樣式的話,不建議使用通配選擇器
[attribute]-屬性選擇器
用來定義元素包含屬性為attribute的元素的樣式,常見使用方法如下:
<p> </p><p> </p>
- Menu
- Index
[attribute=「value」]— —屬性選擇器
用於定義元素屬性的值為指定的值樣式,常見使用方法如下:
<p> </p><p> </p>
- Menu
- Index
[attribute~="value"]—屬性選擇器
用於定義屬性中包含指定值且以空格來分隔屬性值得元素,常見使用方法如下:
<p> </p><p> </p>
- Menu
- Index
如上所示,只有第一個li 的前景色會被定義為紅色!
[attribute|="value"]-屬性選擇器
用於定義屬性中包含指定值且以連字符(-)連結的屬性值,常見使用方法如下:
<p> </p><p> </p>
- Menu
- Index
如上圖所示:只有第二個li 的前景色會被定義為紅色!
:first-child-結構偽類別選擇器
用於定義元素的第一個元素的樣式,常見使用方式如下:
<p> </p><p> </p>
- Menu
- Index
##:first -child 是作用於同級,且相同標籤的第一個元素。如上圖所示,如果要定義第一個li 的樣式,那麼久需要使用li:first-child,而不是ul:first-child!
:lang(en)
用於定義屬性為lang=“en” 的元素樣式,常見使用方法如下:
<p> </p><p>Hello World</p> <style> p:lang(en) { color: red; } </style>
::before
用於定義元素之前的內容和樣式,常見使用方法如下:
<p> <a>World</a> </p> <style> a::before { content: "Hello "; } </style>
::after
用於定義元素之後的內容和樣式,常見使用方法如下:
<p> <a>Hello</a> </p> <style> a::after { content: "World"; } </style>
p > p
用於定義元素的第一級子元素的樣式,常見方法使用如下:
<p> </p><p> </p>
- Menu
- Index
h1 + p
用於定義元素相鄰的元素樣式,常見使用方法如下:
<p> </p><h1 id="CSS">CSS</h1> <p>层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。</p> <style> h1 + p { color: red; } </style>
CSS3 新增屬性選擇器
[foo^="bar"]
#用於定義元素屬性以bar 開頭的元素的樣式
<p> <a>Betterde Inc.</a> <a>Betterde Inc.</a> </p> <style> a[href^="https"] { color:green; } </style>
如上所示,標記https 連結為綠色。
[foo$="bar"]
用於定義元素屬性以bar 結尾的元素的樣式
<p> <a>logo.png</a> <a>style.css</a> <a>main.js</a> </p> <style> a[href$="png"] { background: url(system/filetype/png.png) no-repeat left center; padding-left: 18px; } a[href$="css"] { background: url(system/filetype/css.png) no-repeat left center; padding-left: 18px; } a[href$="js"] { background: url(system/filetype/js.png) no-repeat left center; padding-left: 18px; } </style>
如上所示,識別超連結的所連結的文件格式,並在前面添加文件類型圖示!
[foo*="bar"]
用來定義元素屬性中包含bar 的元素的樣式,需要注意的是,這裡是包含,也就是說無論是什麼樣的組合,只要屬性值還有這bar 這三個連續字母的都會被選中!
<p> </p><h1></h1> <h2> <h1></h1> <style> a[class*="title"] { color: red; } </style> </h2>
如上圖所示:p 內的三個元素都會被渲染為紅色字體!
雖然 CSS3 中任然保留 CSS2 中定義的屬性選擇器,但建議使用 CSS3 的屬性選擇器來替代!
結構偽類別選擇器
:root
用於定義html 標籤元素的樣式
:nth-child(n)
用來定義子元素的樣式,n 表示第幾個子元素。 n 可以是數字,或關鍵字odd、even或公式。常見使用方法如下:
name | gender | age |
George | Male | 23 |
Kevin | Male | 28 |
Angule | Male | 23 |
:nth-last-child(n)
与 :nth-child(n)用法相同,只是排序方式是从后往前!
:nth-of-type(n)
用于定义相同元素的第 n 个元素的样式,常见使用方法如下:
name | gender | age |
George | Male | 23 |
Kevin | Male | 28 |
Angule | Male | 23 |
:nth-last-of-type(n)
与 :nth-of-type(n)用法相同,只是排序方式是从后往前!
:last-child
用于定义最后一个元素的样式,常见使用方法如下:
name | gender | age |
George | Male | 23 |
Kevin | Male | 28 |
Angule | Male | 23 |
:first-of-type
定义第一个元素相同类型元素的样式,与 :nth-of-type(1) 效果一样
:last-of-type
定义最后一个元素相同类型元素的样式,常见使用方法如下:
name | gender | age |
George | Male | 23 |
Kevin | Male | 28 |
Angule | Male | 23 |
:only-child
用于定义子元素只有一个且与制定元素标签相同,常见使用方法如下:
<p> </p><h1 id="Hello">Hello</h1> <style> h1:only-child { /*如果 p 中还有其他任何元素,则h1不会按照该选择器中定义的样式渲染*/ } </style>
:only-of-type
用于定义只包含一个制定的标签元素的样式,常见使用方法如下:
<p> </p><h1 id="Hello">Hello</h1> <style> h1:only-of-type { /*如果 p 中还有其他任何元素,则h1不会按照该选择器中定义的样式渲染*/ } </style>
:empty
用于定义,一个元素中没有包含任何子元素的样式,常见使用方法如下:
<p> </p> <style> p:empty { display: none; } </style>
CSS3 新增的其他选择器
E ~ F
用于定义兄弟元素的样式,常见使用方法如下:
<p> </p><p>Hello</p> <p>CSS</p> <style> p ~ p { color: red; } </style>
p 元素中的 p 不会被渲染为红色字体,只有跟 p 是同级的 p 才会被渲染为红色!
:not(s)
用于定义指定元素,并且过滤 s 所指定的选择器元素,常见使用方法如下:
<p> </p><p>Hello</p> <p>World</p> <p>Welcome!</p> <style> p:not(.red) { color: blue; } </style>
注意:s 是一个简单的结构选择器,不能使用复合选择器,该选择器只匹配第一个复合条件的元素。如上所示,最后一个 p 不会被渲染为蓝色!
:target
用于定义被访问的锚链样式,常见使用方法如下:
<p> </p><p> </p>这是第一个文本段
这是第二个文本段
注意:当我们激活锚链时(url中包含 #text-one 或 #text-two),对应的 p 内的元素字体会被渲染为红色!
CSS3 UI 元素状态伪类选择器
:enabled
用于定义元素的 enabled 时的样式,常见使用方式如下:
<p> <input> </p> <style> input:enabled { background: #ffff00; } </style>
注意:元素默认状态为 enabled
:disabled
用于定义元素处于禁用状态时的样式,常见使用方法如下:
<p> <input> </p> <style> input:disabled { background: #dddddd; } </style>
:checked
用于定义元素被选中时的样式,常见使用方式如下:
<p> </p>
相关推荐:
以上是詳解CSS選擇器 Selector的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在這篇文章中,布萊克·莫里(Blackle Mori)向您展示了一些駭客,同時試圖推動同位HTML支持的極限。如果您敢於使用這些,以免您也被標記為CSS罪犯。

具有CSS的自定義光標很棒,但是我們可以將JavaScript提升到一個新的水平。使用JavaScript,我們可以在光標狀態之間過渡,將動態文本放置在光標中,應用複雜的動畫並應用過濾器。

互動CSS動畫和元素相互啟動的元素在2025年似乎更合理。雖然不需要在CSS中實施乒乓球,但CSS的靈活性和力量的增加,可以懷疑Lee&Aver Lee有一天會成為一種

有關利用CSS背景濾波器屬性來樣式用戶界面的提示和技巧。您將學習如何在多個元素之間進行背景過濾器,並將它們與其他CSS圖形效果集成在一起以創建精心設計的設計。

好吧,事實證明,SVG的內置動畫功能從未按計劃進行棄用。當然,CSS和JavaScript具有承載負載的能力,但是很高興知道Smil並沒有像以前那樣死在水中

是的,讓#039;跳上文字包裝:Safari Technology Preview In Pretty Landing!但是請注意,它與在鉻瀏覽器中的工作方式不同。

此CSS-tricks更新了,重點介紹了年鑑,最近的播客出現,新的CSS計數器指南以及增加了幾位新作者,這些新作者貢獻了有價值的內容。

在大多數情況下,人們展示了@Apply的@Apply功能,其中包括Tailwind的單個property實用程序之一(會改變單個CSS聲明)。當以這種方式展示時,@Apply聽起來似乎很有希望。如此明顯


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

WebStorm Mac版
好用的JavaScript開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

記事本++7.3.1
好用且免費的程式碼編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器