首頁 >web前端 >css教學 >為什麼我不能使用同級組合器隱藏偽元素以及如何實現這一點?

為什麼我不能使用同級組合器隱藏偽元素以及如何實現這一點?

Linda Hamilton
Linda Hamilton原創
2024-12-01 17:55:12622瀏覽

Why Can't I Hide a Pseudo-Element Using Sibling Combinators and How Can I Achieve This?

使用同級組合器定位偽元素

為了隱藏在特定錨標記後生成的偽元素,但避免那​​些包裝圖像,實現了以下CSS :

a[href^="http"]:after {
    /* Styling for the pseudo-element */
}

a[href^="http"] img ~ :after {
    display: none;
}

但是,此方法在以下情況下失敗了HTML:

<a href="http://google.com">Test</a>
<a href="http://google.com">
    <img src="https://www.google.com/logos/classicplus.png">
</a>

為什麼此嘗試失敗?

答案:

使用同級組合器定位偽元素(:after) (|) 是不可能的,因為偽元素的內容不會在DOM 中呈現並且不會對其進行操作。因此,CSS 無法根據同級影像的存在修改 DOM 以隱藏偽元素。如 CSS2 規格所述:

「產生的內容不會改變文件樹。」

要解決此問題,可以考慮使用 JavaScript 根據存在同級圖像。

以上是為什麼我不能使用同級組合器隱藏偽元素以及如何實現這一點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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