掌握CSS級聯:告別混亂,擁抱掌控!本文將探討如何利用新的CSS特性來掌控級聯,從而編寫更簡潔高效的CSS代碼。以往,來自不同來源的樣式常常導致級聯難以管理,最終產生冗餘代碼。即使使用ITCSS和BEM等方法,我們仍然會面臨級聯帶來的挑戰,例如需要精確控制@import
語句的位置或不得不求助於!important
。幸運的是,一些新的工具已經問世,讓我們能夠有效地控制級聯。
駕馭:where
偽選擇器
:where
偽選擇器允許我們消除選擇器的特殊性,使其優先級僅高於用戶代理默認樣式,而與CSS加載順序無關。這意味著選擇器的特殊性實際上為零,這對於通用組件非常有用。
例如,使用:where
定義通用的表格樣式:
:where(table) { background-color: tan; }
即使在此之前定義了其他表格樣式:
table { background-color: hotpink; } :where(table) { background-color: tan; }
表格背景色仍然為tan
,因為:where
消除了選擇器的特殊性。這使得:where
非常適合CSS重置。
:where
的兄弟選擇器:is
則具有相反的效果:
:is()
偽類的特殊性由其最特殊參數的特殊性決定。因此,使用:is()
編寫的選擇器並不一定具有與不使用:is()
編寫的等效選擇器相同的特殊性。 ——選擇器級別4規範
繼續之前的例子:
:is(table) { --tbl-bgc: orange; } table { --tbl-bgc: tan; } :where(table) { --tbl-bgc: hotpink; background-color: var(--tbl-bgc); }
表格背景色將為tan
,因為:is
的特殊性與table
相同,而table
位於之後。但是,如果我們將其更改為:
:is(table, .c-tbl) { --tbl-bgc: orange; }
背景色將為orange
,因為:is
的權重與其最特殊的選擇器.c-tbl
相同。
示例:可配置的表格組件
讓我們構建一個表格組件,HTML如下:
接下來,我們將.c-tbl
包裹在:where
選擇器中,並添加圓角:
:where(.c-tbl) { border-collapse: separate; border-spacing: 0; table-layout: auto; width: 99.9%; }
表格單元格使用不同的樣式:
:where(.c-tbl thead th) { /* ... */ } :where(.c-tbl tbody td) { /* ... */ }
由於圓角和border-collapse: separate
,我們需要添加額外的樣式:
:where(.c-tbl tr td:first-of-type) { /* ... */ } /* ... */
現在,我們可以通過在通用樣式之前或之後注入其他樣式來創建表格組件的變體(得益於:where
的特殊性消除功能):
.c-tbl--purple th { background-color: hsl(330, 50%, 40%) } /* ... */
CSS自定義屬性
我們將使用data-component
屬性來定義組件:
以上是不要與級聯戰鬥,控制它!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

當他們在2013年去Chrome時,我們失去了歌劇。與Edge今年早些時候也進行了同樣的交易。邁克·泰勒(Mike Taylor)稱這些變化為“減少

在本週的綜述中,Apple進入Web組件,Instagram如何插入腳本以及一些思考的食物,以進行自託管關鍵資源。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SublimeText3漢化版
中文版,非常好用