完整的選擇器看這裡:[Try CSS Selector (w3schools.com)](https://www.w3schools.com/cssref/trysel.php?)
完整查詢看這邊:https://caniuse.com/
練習在這邊https://flukeout.github.io/
CSS 選擇器用來選擇需要應用樣式的 HTML 元素。不同類型的選擇器可以根據元素的標籤、類別、ID、屬性等來選擇元素。以下是一些常用的 CSS 選擇器及其用法:
選擇器類型 | 說明 | 範例 |
---|---|---|
元素選擇器 | 選擇所有指定標籤的元素 | p { color: blue; } |
類別選擇器 | 選擇所有具有指定類別的元素 | .class-name { font-size: 14px; } |
ID 選擇器 | 選擇具有指定 ID 的元素 | #id-name { background-color: yellow; } |
通用選擇器 | 選擇所有元素 | * { margin: 0; } |
後代選擇器 | 選擇在特定父元素內的特定子元素 | div p { color: red; } |
子選擇器 | 選擇特定父元素的直接子元素 | ul > li { list-style: none; } |
相鄰兄弟選擇器 | 選擇緊接在特定元素後面的元素 | h1 + p { font-size: 16px; } |
通用兄弟選擇器 | 選擇同一父元素下在特定元素後面的所有元素 | h1 ~ p { color: green; } |
屬性選擇器 | 選擇具有特定屬性或屬性值的元素 | a[href] { text-decoration: none; } |
偽類選擇器 | 選擇元素的特定狀態或部分 | a:hover { color: blue; } |
偽元素選擇器 | 選擇元素的特定部分,像是第一行或第一個字 | p::first-line { font-weight: bold; } |
↡可參考的課堂練習(選擇器如何運作)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 1.CSS會區分文字大小寫 -->
<!-- 2.CSS註解方式為 /* */ -->
<style>
/* 基本類型: 標籤(tag name)、#id、.class */
/* Type selector (標籤|類型選擇器)
使用 標籤(tag name) 挑選元素並設定樣式 */
/* h1 {
color: red;
font-size: 24px;
} */
/* 你可以指定任意元素全部的樣式,*/
h4.pokemon {
color: blue;
border: 3px solid black;
}
/* ID selector (ID選擇器)
使用 #id 挑選元素並設定樣式 */
#pikachu {
color:yellow;
}
/* Class selector (類別選擇器)
使用 .class 挑選元素並設定樣式 */
.pokemon {
background-color: lightblue;
}
.Pokemon{
background-color: lightgreen;
}
.fire{
border: 2px solid red;}
</style>
</head>
<body>
<h1 class="Pokemon fire">小火龍</h1>
<!-- 一個Class可以有同時放多個css屬性,並且可以重複使用 -->
<h2 id="pikachu">皮卡丘</h2>
<!-- 可以用ID選擇器來指定元素,並且只對該元素有效 -->
<h3 class="Pokemon">卡比獸</h3>
<!-- 大寫與小寫在CSS當中會被視為不同 -->
<h4 class="pokemon">胖丁</h4>
<h4>傑尼龜</h4>
</body>
</html>
當我們在網頁上設計樣式時,我們可能會對同一個元素應用多種不同的 CSS 樣式。為了知道哪個樣式會實際生效,我們需要了解「選取器的明確性」,也就是「誰的聲音比較大」。
<div style="color: red;">
。他們就像家長直接幫你選衣服,意見最大,幾乎總是他說了算。#header
。他們的意見很重要,但還是比不過家長。.menu
或 [type="text"]
。這些意見比大哥大姐弱一些。p
、div
。它們的影響力最小,容易被別人的意見覆蓋掉。