CSS 教學筆記:內聯、內部、外部樣式與選擇器權重完整解析

更新 發佈閱讀 1 分鐘

CSS 是網頁的美化器,我個人覺得概念不難,但是很多細小的功能需要學習。這一篇主要介紹專有名詞。實際上要學會css還是要操作。我原本以為只要一篇文章就可以講完,結果需才寫兩個觀念就超過閱讀時間 5 分鐘... CSS 其實不難,只是很繁雜。

這篇聚焦在 CSS的樣式表、就是「選」HTML 元素的方法、CSS 權重。

學習資源:

課程框架:鬍子科技學院

操作模擬器:W3School 練習

IG 技術分享帳號:this.web


1. internal, external, inline CSS

1. Inline CSS(內聯樣式)

想像一下,你今天做了一個便當,結果你在每道菜上面都貼了個小紙條,寫著:

「炒蛋:鹽放一點點,飯糰:鹽巴少許,青菜多放兩朵花椰菜。」

這種方式 (inline) 就是直接在 HTML 元素上設定樣式,就像你直接把調味料標記在每一個菜的旁邊。

<p style="color:red;">這段文字會變紅色</p> <!-- 每一條都要這樣設定 -->

特點

  • 每道菜各自標記,很難統一管理。
  • 偶爾急用還行,但要管理大量樣式就崩潰了,而且別人要找也不好找。

2. Internal CSS(內部樣式)

你在便當盒裡放了一張紙條,告訴自己:「今天便當的菜都少鹽少油,白飯多一點」,這個規定就只針對今天這個便當內的所有菜有效。

  • <head> 標籤: 它是 HTML 的「腦袋」,主要放的東西是「設定」或是「樣式規定」,並不是畫面上真正會看到的內容。
  • <style> 標籤: 專門放 CSS 程式碼,讓你設定網頁裡元素長什麼樣子。
  • p { color: blue; }: 意思是『選到 HTML 裡的所有 <p> 元素,並讓它們的字體顏色變藍色』。
<!DOCTYPE html>
<html>
<head>
<style>
p{color:blue;}
</style>
</head>
<body>
<p>這段文字會是藍色的~</p>
<h1>這個標題不會變色喔!</h1>
<p>這段也會是藍色!</p>
</body>
</html>
raw-image


特點

  • 只對目前這個網頁有效,改一次所有內容就會跟著調整。
  • 比較方便統一,但還不夠靈活(其他便當要重寫一次規則)。

2. External CSS(外部樣式)

現在你直接寫了一個便當食譜,每道菜如何調味、要放什麼量、飯菜比例通通規定好。你有好幾個便當盒,每個便當盒都按照這個食譜來做,超級有效率又方便管理!

實際上是,外部樣式 (external CSS) 就是你把所有的CSS規則放到一個獨立的外部檔案裡,然後再從 HTML 文件去連結它。

📖 怎麼用?

你要做兩個步驟:

Step 1:建立外部CSS檔案

比如你建一個叫做 style.css 的檔案:

把HTML 跟CSS Javascript放在一起

把HTML 跟CSS Javascript放在一起


p {
color: blue;
font-size: 16px;
}

這邊意思是:

  • 所有 HTML 的 <p> 段落都會變成藍色、18px 字體大小。

Step 2:HTML 檔案內連結這個CSS檔

接著在 HTML 檔案中,用下面的方式載入它:

href="style.css" 是指來源的檔案。

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<p>這個段落會變藍色,因為有外部樣式!</p>
</body>
</html>

這樣就完成啦~


🔍 實際運作的原理是:

  • 當瀏覽器讀到 HTML 中的這句話:
    <link rel="stylesheet" href="style.css">
    它會馬上跑去打開旁邊的 style.css 檔案。
  • 然後讀到 style.css 裡面有一行:
p { color: blue; }

它就知道了:「喔,原來所有的 <p> 都要變成藍色呀!」


📌 外部樣式好處在哪裡?

  • 只需要寫一次,就能用在很多網頁上,超省事!
  • 之後要修改樣式,改一次 style.css 就可以影響到每個頁面,不用一個個頁面修改,省事很多。

✨ 小總結:

  • Inline CSS:直接在元素上寫樣式,很難管理。
  • Internal CSS:寫在 HTML 中,只適用於這一頁。
  • External CSS:獨立一個外部檔案,全部頁面都能用,方便又乾淨。

2 Selectors (class, id, element, universal)

CSS Selector 的作用就是「哪些 HTML 元素要套用特定樣式」

1. Element Selector(元素選擇器)

  • 功能:依據 HTML 的元素標籤名稱選取元素。
  • 作用:快速、統一地設定特定元素的樣式,例如一次調整所有段落文字 (<p>) 的外觀。

使用時機:

  • 所有文章的內文 (p) 都用同樣字體大小和顏色
  • 所有的標題 (h1, h2) 統一用特定字型或粗細
  • 全站連結 (a) 都統一樣式

範例:

p {
color: blue;
}

上方表示所有的段落文字都會變成藍色。


2. Class Selector(類別選擇器)

  • 功能:選取特定類別(class)的元素,class 可以重複使用。
  • 作用:將特定的樣式套用到多個不同種類的元素上。

當你想設定一個可重複用在不同元素或區塊的特殊樣式時會用 Class,例如:

  • 設定某些「強調文字」或「按鈕」的特殊樣式
  • 讓多個不同元素使用統一的排版樣式(例如產品卡片、文章卡片)
  • 樣式會重複用到很多次時使用,方便管理且清晰明瞭。
.highlight {
background-color: yellow;
}

這樣一來,只要 HTML 元素有設定 class="highlight",它就會自動套用黃色背景。有點像是螢光筆可以到處塗的感覺。


3. ID Selector(身份選擇器)

  • 功能:根據 HTML 中獨特的 ID 名稱來選取唯一元素,每個 ID 只能使用一次。
  • 作用:精準且唯一地指定某一個元素。

我自己感覺沒那麼好用,可能在頁面的主標題(hero banner)、網站 LOGO、導航欄或重要的互動元素上。

#main-title {
font-size: 32px;
}

這樣,只有 id 為 main-title 的元素會被改成 32px。


4. Universal Selector(通用選擇器)

  • 功能:選擇 HTML 文件中所有的元素。
  • 作用:快速將一些共用設定(例如重置margin, padding)一次套用到所有元素。小小複習,margin 是你按 F12 會出現的
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}

所有元素都會被套用這個規則。

這是方格子編輯器的CSS,可以看到 上一個動作跟下一個動作的樣式都是一樣的

這是方格子編輯器的CSS,可以看到 上一個動作跟下一個動作的樣式都是一樣的



🔑 總結選擇器的用途:

  • element 選擇器:適合快速統一調整同類型元素樣式。
  • class 選擇器:重複套用相同樣式到不同種類的元素。
  • id 選擇器:單獨調整某個特定元素樣式。
  • universal 選擇器:快速一次設定所有元素的樣式,通常用來重置或初始化樣式設定。



3. CSS specificity(權重)

CSS 也會搶地盤!權重大小是這樣:

inline > ID > Class > Element

簡單說,越具體的選擇方式越能壓制其他樣式。我們來示範一個例子:

假設你有一個 HTML 段落:

<p id="special" class="highlight">CSS 權重大比拼!</p>

你寫了三種 CSS:

/* 第一種:用 element 選擇器 */
p {
color: blue;
}

/* 第二種,用 class 選擇器 */
.highlight {
color: green;
}

/* 第三種,用 ID 選擇器 */
#special {
color: red;
}

那你猜猜看,最後這個段落的字體顏色會是哪一個?


🔥答案:會是紅色!

為什麼呢?因為 CSS 權重的計算方式是:

ID > Class > Element
  • #special (id) 權重最高 → 紅色勝利 🎯
  • .highlight (class) 次之
  • p 最弱

所以,即使你同時給段落寫了好幾種樣式,瀏覽器會根據權重來決定用哪一個:

inline style > ID (#id) > Class (.class) > Element (p, div)

📌再補充一下 inline style:

假如你又在 HTML 裡面使用 inline style:

<p id="special" class="highlight" style="color: green;">CSS 權重大比拼!</p>

這時候就算你 ID 寫的是紅色,inline 樣式的權重還是最大,結果會是綠色

試玩看看








留言
avatar-img
越南放大鏡 X 下班資工系
60會員
108內容數
雙重身份:越南放大鏡 X 下班資工系 政大東南亞語言學系是我接觸越南語的起點,畢業後找越南外派工作的生活跟資訊時,發現幾乎都是清單式的分享,很難身歷其境。所以我希望「越南放大鏡」可以帶讀者看到更多細節和深入的觀察。 - 下班資工系則是自學資工系的課程內容,記錄實際操作的過程,學習理論的過程。希望可以跟讀者一起成長。
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/24
本系列文章將循序漸進地介紹 JavaScript 的核心概念,從基礎語法到進階應用,例如非同步程式設計和 React 基礎。內容淺顯易懂,並使用生活化的比喻幫助讀者理解,搭配程式碼範例,適合 JavaScript 初學者學習。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/21
本文介紹行動通訊網路的演進歷史,從1G到5G,並說明ITU與3GPP在制定通訊規格上的重要角色,以及5G的三大關鍵應用場景:URLLC、eMBB和mMTC。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
2025/04/11
這篇文章說明網路的七層模型、IP 位址、通訊埠、TCP/UDP 協定、HTTP 協定、HTTP 狀態碼以及 WebSocket,並解釋它們之間的關係與互動方式。文中包含許多圖表和範例,幫助讀者理解這些網路概念。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
在本章中,我們探討了CSS Grid佈局的基本概念和應用。CSS Grid提供了一個強大而靈活的二維佈局系統,使得處理複雜的網頁佈局變得更加簡單和直觀。我們學習了如何設置Grid容器和Grid項目,以及如何使用各種Grid屬性來定義和管理佈局。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
CSS 是控制網頁外觀的語言,應用於網頁設計、UI/UX 設計、電子商務和移動應用開發。主要使用者包括前端開發者、UI/UX 設計師和網頁設計師。CSS 的特性有樣式控制、層疊優先級、響應式設計及分離內容與樣式。
Thumbnail
這篇文章分享了 CSS Battle 第 38 題的解法,並提供了相關的技術總結。文章內容包括了使用 flex 排版處理、背景漸層的方法處理等相關技術。透過這篇文章可以學習到如何解決 CSS 切版的問題。
Thumbnail
這篇文章分享了 CSS Battle 第 38 題的解法,並提供了相關的技術總結。文章內容包括了使用 flex 排版處理、背景漸層的方法處理等相關技術。透過這篇文章可以學習到如何解決 CSS 切版的問題。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
這是一篇關於CSS Battle系列的文章,介紹瞭如何通過CSS來處理特定圖案的切版與前端工程技術。文章分享了使用grid和radial-gradient()方法來處理特定圖案的解法以及相關技術總結。
Thumbnail
這是一篇關於CSS Battle系列的文章,介紹瞭如何通過CSS來處理特定圖案的切版與前端工程技術。文章分享了使用grid和radial-gradient()方法來處理特定圖案的解法以及相關技術總結。
Thumbnail
CSS 樣式採用規則:先看權重,再看誰後
Thumbnail
CSS 樣式採用規則:先看權重,再看誰後
Thumbnail
這篇文章將解析CSS Battle第136題的解法,主要考驗基本CSS置中排版的能力,並提供了作者的解法與技術總結。透過互動學習,讓想要學習或練習基礎切版的朋友可以參與討論。
Thumbnail
這篇文章將解析CSS Battle第136題的解法,主要考驗基本CSS置中排版的能力,並提供了作者的解法與技術總結。透過互動學習,讓想要學習或練習基礎切版的朋友可以參與討論。
Thumbnail
您對前端有興趣,對CSS不陌生。CSS新特性前應瞭解基本內容。CSS屬性制定經歷過程,瀏覽器私有前綴及處理,開發者對新特性漸進增強,優雅降級處理,Web標準定義、作用等。
Thumbnail
您對前端有興趣,對CSS不陌生。CSS新特性前應瞭解基本內容。CSS屬性制定經歷過程,瀏覽器私有前綴及處理,開發者對新特性漸進增強,優雅降級處理,Web標準定義、作用等。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News