FE Interview Hub
CSS中階

偽類 (pseudo-classes) 和偽元素 (pseudo-elements) 是什麼?

AI 練習作答

偽類(Pseudo-classes)

偽類用於選取元素在特定狀態下的樣式,語法使用單冒號 :

/* 滑鼠懸停 */
a:hover { color: blue; }

/* 焦點 */
input:focus { border-color: orange; }

/* 第一個子元素 */
li:first-child { font-weight: bold; }

/* 第 n 個子元素 */
tr:nth-child(even) { background: #f5f5f5; }

/* 表單驗證狀態 */
input:valid { border-color: green; }
input:invalid { border-color: red; }

常見偽類

偽類 說明
:hover 滑鼠懸停時
:focus 元素取得焦點時
:active 元素被點擊時
:visited 已瀏覽過的連結
:first-child 父元素的第一個子元素
:last-child 父元素的最後一個子元素
:nth-child(n) 第 n 個子元素
:not(selector) 不符合選擇器的元素

偽元素(Pseudo-elements)

偽元素用於選取或插入元素的特定部分,語法使用雙冒號 ::(CSS3 規範,舊版也接受單冒號)。

/* 在元素前插入內容 */
.icon::before {
  content: '★';
  margin-right: 4px;
}

/* 在元素後插入內容 */
.required::after {
  content: ' *';
  color: red;
}

/* 選取文字被選中的部分 */
p::selection {
  background: yellow;
  color: black;
}

/* 首字母 */
p::first-letter {
  font-size: 2em;
}

關鍵差異

偽類 偽元素
語法 : 單冒號 :: 雙冒號
作用 選取元素的狀態 選取或建立元素的特定部分
是否增加 DOM ✅(::before / ::after

✦ AI 模擬面試

輸入你的答案,AI 即時分析精準度與改進空間

登入後即可使用 AI 評分