抽出品牌色與間距變數
條件:用 DevTools Styles 查看卡片間距與按鈕背景,確認分別來自 --space-card 與 --color-brand。 驗收:卡片間距與按鈕品牌色由具名變數控制
CHAPTER 11 · 210 MINUTES
同一個品牌色與間距散落多處,選取器越寫越長,樣式失效時只會繼續加規則或 !important。
LEARNING GOALS
條件:用 DevTools Styles 查看卡片間距與按鈕背景,確認分別來自 --space-card 與 --color-brand。 驗收:卡片間距與按鈕品牌色由具名變數控制
條件:用 DevTools 選取卡片說明,確認頁面級選取器不再覆蓋元件規則。 驗收:卡片說明不再被頁面級規則覆蓋
條件:將兩處改成 work-card__action,刪除舊規則後用滑鼠 hover、Tab 與 DevTools 驗證。 驗收:練習作品的舊 class 搜尋為零,新 class 同時控制基本、hover 與 focus 狀態
輸入:第 10 章產物:有目的、可操作且尊重減少動態偏好的互動回饋
本章輸出:整理後、可追查覆蓋來源的作品集 CSS
產物類型:mainline;後續用途:第 12 章
PROBLEM & ANALOGY
CSS 變數像工作室的色票與尺寸標籤;DevTools 像驗屋用的探測器,先找到哪條規則生效,再決定要修哪一處。
本章要解決:同一個品牌色與間距散落多處,選取器越寫越長,樣式失效時只會繼續加規則或 !important。
接住上一章:第 10 章已完成有狀態回饋的 CTA。
合回共同作品:本章成果必須回到同一份作品集檢查,不另開一個無關小作品。
SCOPE
抽出品牌色與間距變數;縮小會外溢的選取器範圍;用 Styles 與 Computed 面板提出證據。
能辨識被刪線規則、來源檔案與 computed value。
不教預處理器、CSS-in-JS 或以 !important 當通用修法。
本章術語:CSS 變數、cascade、specificity、computed、scope、DevTools。遇到英文先回到畫面責任,不要求背拼字。
CORE IDEAS
--color-brand,不使用 --green1。DEBUG
課堂刻意錯誤:故意用 #portfolio .card p 覆蓋 .card__text,讓學生在 Styles 看刪線,再把廣泛規則縮到 .legacy-note,不加 !important。
var() 括號與變數名稱是否完全一致。固定順序:先重現 → 讀 Console/Styles → 確認檔案與元素 → 一次只修一處 → 重跑原操作。
先查:先查 var() 名稱一致,再看變數宣告範圍。
先查:在 Computed 追來源,找出外溢的頁面級規則。
先查:搜尋舊 class,確認 HTML、CSS、hover、focus 都同步。
PRACTICE CONTRACT
檔案:style.css
位置:依任務文字搜尋對應元素或函式
結果:卡片間距與按鈕品牌色由具名變數控制
檔案:style.css
位置:依任務文字搜尋對應元素或函式
結果:卡片說明不再被頁面級規則覆蓋
檔案:index.html、style.css
位置:依任務文字搜尋對應元素或函式
結果:HTML 與 CSS 只剩新 class,舊名稱為零且 hover、focus 規則集中
EVIDENCE
我把 ______ 抽成 ______;Computed 顯示來源是 ______;搜尋 ______ 的結果為 0。
重構以行為不變為前提;請保留原本可操作的 hover、focus 與卡片內容。
提交整理前後截圖,以及一張 DevTools Styles 面板截圖,標出哪條規則曾被覆蓋。
30 分鐘真實重構:在共同作品中全域搜尋一組含糊 class,完整更新 HTML 與 CSS 呼叫方,刪除被取代的重複規則;提交舊名稱搜尋為零、DevTools 生效規則與三種寬度回歸證據。
下一章:第 12 章會讓整理後的版面適應不同螢幕寬度。