首頁 >web前端 >css教學 >如何根據 CSS 中子元素的存在來設定父元素的樣式?

如何根據 CSS 中子元素的存在來設定父元素的樣式?

Linda Hamilton
Linda Hamilton原創
2024-11-28 02:23:14631瀏覽

How Can I Style a Parent Element Based on the Presence of a Child Element in CSS?

使用CSS 根據子級的存在將樣式應用於父級

使用巢狀元素時,可能需要將樣式套用於父級基於是否包含子元素。 CSS 為此提供了有限的解決方案。

使用 ':has()' 選擇器

:has() 選擇器可用來選取包含特定的子元素。例如,要對包含ul.sub 子元素的父li 元素套用樣式:

ul li:has(ul.sub) {
    background-color: green;
}

限制

不幸的是,:has() 選擇器僅在CSS4 中受支持,並未被瀏覽器廣泛採用。

替代方案使用JavaScript

作為替代方案,您可以使用JavaScript 實現所需的效果:

$('ul li:has(ul.sub)').addClass('has_sub');

然後,在CSS 中為li.has_sub 類別新增樣式。

注意:

建議使用的原始答案中的刪除線部分$ 選擇器,這是 CSS4 提案,但目前任何瀏覽器都不支援。

以上是如何根據 CSS 中子元素的存在來設定父元素的樣式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn