CSS 程式札記 : 偽類與偽元素

閱讀時間約 3 分鐘

本文將介紹 CSS 中的兩個重要概念:偽類與偽元素。通過理解和運用這些概念,你可以更好的控制網頁的樣式和佈局。

CSS 偽類 (Pseudo-classes)

偽類是一種用來定義元素特定狀態的樣式規則,它們以冒號(:)開頭,後接特定的關鍵字,常見的偽類包括:

  • :hover:當鼠標懸停在元素上時,應用樣式。
  • :active:當元素被激活(例如,點擊)時,應用樣式。
  • :focus:當元素獲得焦點(例如,通過鍵盤導航)時,應用樣式。
  • :nth-child():根據元素在其父元素中的位置來選擇並應用樣式。
a:hover {
color: red; /* 當鼠標懸停在鏈接上時,改變鏈接的文字顏色為紅色 */
}

input:focus {
border: 2px solid blue; /* 當輸入框獲得焦點時,改變其邊框顏色為藍色 */
}

button:active {
background-color: yellow; /* 當按鈕被點擊時,改變其背景顏色為黃色 */
}

li:nth-child(odd) {
background-color: lightgray; /* 選擇列表中的奇數項,並將其背景顏色設為淺灰色 */
}

:nth-child() 詳細介紹

:nth-child() 可以根據其在父元素中的順序選擇元素。它的語法為 :nth-child(an+b),其中 ab 是整數,可以是正數、負數或零。

  • :nth-child(odd):選擇奇數項。
  • :nth-child(even):選擇偶數項。
  • :nth-child(3n):每隔三個元素選擇一個元素,從第三個元素開始。
  • :nth-child(4n+1):每隔四個元素選擇一個元素,從第一個元素開始。

CSS 偽元素 (Pseudo-elements)

偽元素用於選擇並樣式化元素的特定部分,它們以兩個冒號(::)開頭,後接特定的關鍵字,常見的偽元素包括:

  • ::before:在元素內容之前插入內容。
  • ::after:在元素內容之後插入內容。
  • ::first-letter:選擇並樣式化元素的第一個字母。
  • ::first-line:選擇並樣式化元素的第一行文本。
div::before {
content: "【開頭】"; /* 在 div 元素的內容開始之前插入文本 "【開頭】" */
color: red; /* 將插入的文本顏色設為紅色 */
}

div::after {
content: "【結束】"; /* 在 div 元素的內容結束之後插入文本 "【結束】" */
color: blue; /* 將插入的文本顏色設為藍色 */
}

p::first-letter {
font-size: 2em; /* 將段落的第一個字母的字體大小設為原來的兩倍 */
color: green; /* 將段落的第一個字母的顏色設為綠色 */
}

p::first-line {
font-weight: bold; /* 將段落的第一行文字設為粗體 */
}

偽類與偽元素的區別

雖然偽元素和偽類都是用來擴展 CSS 選擇器的功能,但它們有一些關鍵的區別:

  1. 定義範圍:偽類用於描述元素的特定狀態,而偽元素用於選擇元素的特定部分。
  2. 語法:偽類以一個冒號(:)開頭,而偽元素以兩個冒號(::)開頭。
  3. 應用範圍:偽類可以應用於任何元素,而偽元素通常用於添加裝飾性內容或樣式化特定的文本部分。

😊 感謝你的耐心閱讀,若是你喜歡這篇內容,可以透過以下方式表達你的喜歡 😊

❤️按個愛心|💬留言互動|🔗分享此文|📌追蹤阿梧|☕請喝咖啡

60會員
91內容數
「梧笙」即「吾生」,意即我的生命,朋友都叫我「阿梧(Awu)」,高雄人。我喜歡學習新技能,從程式設計到網路工具,再到社群經營和影片剪輯。日常興趣是打遊戲、看動漫、讀小說和聽音樂。我會把這些興趣寫成文章,如果你有任何想法或問題,歡迎來信到我的郵箱 [email protected]
留言0
查看全部
發表第一個留言支持創作者!
梧笙の領域展開 的其他內容
背景(background)是 CSS 中最常用的功能之一,本文將介紹如何使用 CSS 來設定網頁背景,讓你的網站更加美觀。
如何透過 CSS 來美化和增強文本的可讀性,對於提升用戶體驗至關重要。本文將介紹如何使用 CSS 來處理網頁上的文本,包括字型設定、文本排列、裝飾等多方面。
本文將介紹如何使用 CSS Media Queries 來創建適應不同裝置的網頁,在現今多裝置的網頁設計中,可以透過 CSS Media Queries 來讓我們根據不同的裝置特性,如螢幕尺寸、解析度等,來應用不同的樣式規則。
本文將介紹 CSS 的四個基本概念:margin(外邊距)、padding(內邊距)、border(邊框)和 box-sizing(盒模型),接下來將透過實際的程式碼範例來展示這些概念如何運作。
本文將介紹 CSS 中的position屬性,position是用於控制網頁元素在頁面上的排列,接下來將逐一介紹position屬性的五種不同值:static, relative, absolute, fixed, 和 sticky,以及它們如何影響元素的排列。
本文將介紹 CSS Flexbox,CSS Flexbox 是網頁設計的佈局工具,Flexbox 能使元素的排列和對齊變得更加靈活和直觀,從而大大簡化了響應式網頁設計的過程,通過了解 Flexbox 的概念和屬性,你將能夠利用 Flexbox 創建靈活且響應性強的網頁佈局。
背景(background)是 CSS 中最常用的功能之一,本文將介紹如何使用 CSS 來設定網頁背景,讓你的網站更加美觀。
如何透過 CSS 來美化和增強文本的可讀性,對於提升用戶體驗至關重要。本文將介紹如何使用 CSS 來處理網頁上的文本,包括字型設定、文本排列、裝飾等多方面。
本文將介紹如何使用 CSS Media Queries 來創建適應不同裝置的網頁,在現今多裝置的網頁設計中,可以透過 CSS Media Queries 來讓我們根據不同的裝置特性,如螢幕尺寸、解析度等,來應用不同的樣式規則。
本文將介紹 CSS 的四個基本概念:margin(外邊距)、padding(內邊距)、border(邊框)和 box-sizing(盒模型),接下來將透過實際的程式碼範例來展示這些概念如何運作。
本文將介紹 CSS 中的position屬性,position是用於控制網頁元素在頁面上的排列,接下來將逐一介紹position屬性的五種不同值:static, relative, absolute, fixed, 和 sticky,以及它們如何影響元素的排列。
本文將介紹 CSS Flexbox,CSS Flexbox 是網頁設計的佈局工具,Flexbox 能使元素的排列和對齊變得更加靈活和直觀,從而大大簡化了響應式網頁設計的過程,通過了解 Flexbox 的概念和屬性,你將能夠利用 Flexbox 創建靈活且響應性強的網頁佈局。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
box-sizing 是 CSS 屬性的一種,它使我們可以改變盒模型的計算方式。
Thumbnail
相信大家對於 sticky 這個效果不陌生,網頁上方的導覽列、文章側邊的相關閱讀等,諸多網頁都能看見它的身影,不過這篇不是 sticky 的使用教學,而是我自己的踩雷紀錄😅💣
Thumbnail
自學程式的過程中,你總是把transform、transition,甚至是translate搞混嗎!為了分辨「轉變」的三個關係字,並理解到底什麼時候要用哪個屬性才正確,這篇筆記誕生了!
Thumbnail
相信透過之前的介紹,大家對於 CSS 選擇器(CSS selector)已經不陌生了,今天我們要來聊聊兩個在實務上非常好用的偽類(pseudo class )語法,他們分別是 :nth-child() 與 :nth-of-type(),在了解這兩個語法之前,我們首先要先來聊聊什麼是「偽類」呢?
Thumbnail
這是一篇關於 CSS 動畫屬性的學習筆記,如果你剛好也在學習的話,歡迎進來看看!
Thumbnail
不論是在基礎或是進階的版面排列,幾乎離開不了 position 系列的 CSS 語法,如果對於這些語法不熟悉,要快速完成畫面需求幾乎是不可能的,甚至會延宕整個團隊的開發速度(對,position 語法就是這麽重要)。
Thumbnail
source code: E 提供兩個範例,其實before, after就如同字面上的意思,會在前後加上內容。 範例1簡單的在前後加上文字,如下所示,需特別注意,是在div內的範例1前後加上文字。 before/after除了可以加上文字以外,還可以作為裝飾效果。如範例2,利用position調
Thumbnail
css display grid可以達到類似table span的排版效果,但還是有些差異,table的span其實是合併,css grid比較像是要佔幾格的意思。 如下程式碼為例,colspan是要往右合併的意思,因此會少一個td。 E css grid colspan sample code:
Thumbnail
與HTML不同,CSS是專門修改網頁內容「樣式」的程式語言,也就是說你沒有辦法透過CSS去新增網頁的文字或是圖片等相關的內容,但你可以透過HTML新增網頁內容後,再使用CSS去修改他的樣式,例如⋯⋯
Thumbnail
許多初學網頁開發的朋友們,一開始都不太理解HTML、CSS、 JavaScript之間的差異性,導致初期規劃學習計畫時毫無頭緒。 會有這樣的困擾,主要在於不了解HTML、CSS、 JavaScript之間的關係,以及這三者在網頁運作時所扮演什麼角色,導致越學越阿雜的狀況。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
box-sizing 是 CSS 屬性的一種,它使我們可以改變盒模型的計算方式。
Thumbnail
相信大家對於 sticky 這個效果不陌生,網頁上方的導覽列、文章側邊的相關閱讀等,諸多網頁都能看見它的身影,不過這篇不是 sticky 的使用教學,而是我自己的踩雷紀錄😅💣
Thumbnail
自學程式的過程中,你總是把transform、transition,甚至是translate搞混嗎!為了分辨「轉變」的三個關係字,並理解到底什麼時候要用哪個屬性才正確,這篇筆記誕生了!
Thumbnail
相信透過之前的介紹,大家對於 CSS 選擇器(CSS selector)已經不陌生了,今天我們要來聊聊兩個在實務上非常好用的偽類(pseudo class )語法,他們分別是 :nth-child() 與 :nth-of-type(),在了解這兩個語法之前,我們首先要先來聊聊什麼是「偽類」呢?
Thumbnail
這是一篇關於 CSS 動畫屬性的學習筆記,如果你剛好也在學習的話,歡迎進來看看!
Thumbnail
不論是在基礎或是進階的版面排列,幾乎離開不了 position 系列的 CSS 語法,如果對於這些語法不熟悉,要快速完成畫面需求幾乎是不可能的,甚至會延宕整個團隊的開發速度(對,position 語法就是這麽重要)。
Thumbnail
source code: E 提供兩個範例,其實before, after就如同字面上的意思,會在前後加上內容。 範例1簡單的在前後加上文字,如下所示,需特別注意,是在div內的範例1前後加上文字。 before/after除了可以加上文字以外,還可以作為裝飾效果。如範例2,利用position調
Thumbnail
css display grid可以達到類似table span的排版效果,但還是有些差異,table的span其實是合併,css grid比較像是要佔幾格的意思。 如下程式碼為例,colspan是要往右合併的意思,因此會少一個td。 E css grid colspan sample code:
Thumbnail
與HTML不同,CSS是專門修改網頁內容「樣式」的程式語言,也就是說你沒有辦法透過CSS去新增網頁的文字或是圖片等相關的內容,但你可以透過HTML新增網頁內容後,再使用CSS去修改他的樣式,例如⋯⋯
Thumbnail
許多初學網頁開發的朋友們,一開始都不太理解HTML、CSS、 JavaScript之間的差異性,導致初期規劃學習計畫時毫無頭緒。 會有這樣的困擾,主要在於不了解HTML、CSS、 JavaScript之間的關係,以及這三者在網頁運作時所扮演什麼角色,導致越學越阿雜的狀況。