首頁 > web前端 > css教學 > 主體

為什麼 CSS 沒有後代分組功能?

DDD
發布: 2024-10-31 15:13:01
原創
144 人瀏覽過

Why Doesn't CSS Have Descendant Grouping Functionality?

為什麼 CSS 選擇器缺乏後代分組功能

在 CSS 中,為一組嵌套元素分配樣式可能很麻煩。考慮一個 HTML 表格,您想要在其中設定所有列標題和單元格的樣式。您必須使用以下選擇器:

<code class="css">#myTable th, #myTable td {}</code>
登入後複製

使用以下語法似乎是合乎邏輯的:

<code class="css">#myTable (th, td) {}</code>
登入後複製

歷史背景

但是,這樣的語法並不存在,因為直到2008 年才以:any() 偽類的形式提出建議。

早期瀏覽器實作

Mozilla 在2010 年首次實現為:-moz-any():

<code class="css">#myTable :-moz-any(th, td) {}</code>
登入後複製

WebKit 提出了與:-webkit-any()類似的方法:

<code class="css">#myTable :-webkit-any(th, td) {}</code>
登入後複製

但是,使用這兩個前綴都需要複製規則集,從而使程式碼變得多餘。

現代提案

選擇器等級4 草稿引入了:matches():

<code class="css">#myTable :matches(th, td) {}</code>
登入後複製

此提案仍在開發中,限制了瀏覽器支援。

表格樣式的解決方法

對於表格,您可以使用通用選擇器* 來定位th 和td 元素:

<code class="css">#myTable tr > * {}</code>
登入後複製

為了提高性能,您可能仍然更喜歡較長的形式。

以上是為什麼 CSS 沒有後代分組功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!