CSS Nesting
CSS 巢狀規則
CSS 巢狀規則是把一條樣式規則寫在另一條裡面的原生語法。瀏覽器仍會依 CSS 規範解析選擇器和它們的權重。
另一個例子
按鈕元件把 `&:hover`、`&:focus-visible` 和 `@media (forced-colors: active)` 寫在 `.button` 裡,讓六條狀態規則靠近基礎規則。程式碼審查則拒絕三層後代選擇器,因為那會讓按鈕綁死在某一種頁面結構。
主要部分
- 01父樣式規則
- 02巢狀選擇器或 At-rule
- 03解析後選擇器
什麼時候用
同一元件的狀態、變體和條件 at-rule 規則,可以用一到兩層的淺層巢狀整理。
什麼時候不要用
避免很深的後代鏈,以及對特定 DOM 結構的隱藏相依。原生巢狀的語法和權重也不一定與 CSS 前處理器相同。
程式裡的名稱
nested style rules with &, relative selectors, and nested group rules 上線前要檢查
檢查內容先後順序、共用設計變數、元件一致性、對比、縮放,以及版面能否隨螢幕大小調整。驗證每個主題、語系與狀態;有動態效果時,也要提供同樣完整的減少動態效果版本。
預期成果:定義或使用 CSS 巢狀規則 (CSS Nesting),做出清楚、一致又好用的視覺體驗。 使用者情境:按鈕元件把 `&:hover`、`&:focus-visible` 和 `@media (forced-colors: active)` 寫在 `.button` 裡,讓六條狀態規則靠近基礎規則。程式碼審查則拒絕三層後代選擇器,因為那會讓按鈕綁死在某一種頁面結構。 要運用的設計概念:CSS 巢狀規則 (CSS Nesting)。 適用理由:同一元件的狀態、變體和條件 at-rule 規則,可以用一到兩層的淺層巢狀整理。 不應使用的情況:避免很深的後代鏈,以及對特定 DOM 結構的隱藏相依。原生巢狀的語法和權重也不一定與 CSS 前處理器相同。 設計要求:定義內容先後順序、可重用的設計變數(Token)與元件。說明版面如何隨螢幕大小和狀態改變。分清楚必要的設計方向與純裝飾。 包容性與韌性:檢查對比、縮放、多語系、主題切換與減少動態效果。不能只靠顏色或特效傳達意思。 驗收條件:在手機、桌面、縮放、各種主題與所有支援語系中仍清楚可讀。每個互動狀態都一致且容易理解。 證據與限制(證據邊界):正式文件仍可能是草案、候選版或最終版。請查看文件狀態,也要確認瀏覽器或平台是否支援。 待確認:品牌限制、內容多寡、支援的主題與語系、目標裝置,以及現有設計系統規則。
檢查這份需求
請 AI 程式助手檢查目前如何使用 CSS 巢狀規則 (CSS Nesting)。 定義:CSS 巢狀規則是把一條樣式規則寫在另一條裡面的原生語法。瀏覽器仍會依 CSS 規範解析選擇器和它們的權重。 正式環境檢查:檢查內容先後順序、共用設計變數、元件一致性、對比、縮放,以及版面能否隨螢幕大小調整。驗證每個主題、語系與狀態;有動態效果時,也要提供同樣完整的減少動態效果版本。 修改程式前,先列出看到的證據、缺口、嚴重程度,以及最小且安全的修正。