pseudo-class! Walaupun agak baru, :has()
telah cepat menjadi kegemaran di kalangan pemaju depan untuk keupayaannya untuk mengawal gaya dengan tepat berdasarkan struktur dalaman elemen. Mari kita meneroka fungsinya dan aplikasi praktikal. :has()
Memahami :has()
kelas pseudo elegan gaya elemen hanya jika ia mengandungi unsur-unsur kanak-kanak tertentu. Fikirkannya sebagai gaya bersyarat: "Jika elemen ini mengandungi :has()
itu , maka gaya ini elemen."
sintaks:
:has(<direct-selector>) { /* Styles applied if the direct selector is found within the parent */ }</direct-selector>
menyelesaikan cabaran gaya biasa
Sebelum ini, menggayakan elemen induk yang hanya berdasarkan kehadiran anak -anaknya memerlukan JavaScript. Selesai dengan elegan ini. :has()
(tajuk) mungkin diikuti oleh <h1></h1>
(sarikata). Kami mungkin mahu menyerlahkan secara visual <h2></h2>
hanya jika <h1></h1>
ada secara langsung selepas itu. Sebelum <h2></h2>
, ini memerlukan JavaScript. :has()
cara lama (javascript):
const h1Elements = document.querySelectorAll('h1'); h1Elements.forEach((h1) => { const h2Sibling = h1.nextElementSibling; if (h2Sibling && h2Sibling.tagName.toLowerCase() === 'h2') { h1.classList.add('highlight-content'); } });
elemen, memeriksa <h1></h1>
berikut, dan menambah kelas untuk gaya. <h2></h2>
cara baru (css):
h1:has(+ h2) { color: blue; }
dan gabungan saudara bersebelahan (:has()
). Ia menggayakan
biru hanya jika <h1></h1>
segera mengikutinya. <h2></h2>
Contoh Contoh :has()
mari kita meneroka beberapa senario di mana
:has()
CSS:
<h1>Lorem, ipsum dolor.</h1> <h2>Lorem ipsum dolor sit amet.</h2> <p>...</p> <h1>This is a test</h1> <p>...</p>
hanya yang pertama akan menjadi biru kerana ia diikuti dengan
.h1:has(+ h2) { color: blue; }
<h1></h1>
Contoh 2: Imej gaya dengan kapsyen <h2></h2>
Selalunya, kami bekerja dengan imej dan kapsyen. boleh meningkatkan persembahan imej.
CSS:
hanya jika ia mengandungi .
Pertimbangan penting: Kesimpulan: Bacaan Lanjut: :has()
<figure>
<img src="/static/imghw/default1.png" data-src="https://img.php.cn/" class="lazy" alt="The Power of :has() in CSS ">
<figcaption>My Aunt Sally's Doggo</figcaption>
</figure>
figure:has(figcaption) {
background: #c3baba;
padding: 0.6rem;
max-width: 50%;
border-radius: 5px;
}
<figure></figure>
<figcaption></figcaption>
:has()
mewarisi kekhususan pemilih dalaman yang paling spesifik. :has()
akan melegakan melainkan jika digunakan dalam pemilih pemaafkan seperti :is()
atau :where()
. :has()
tidak boleh bersarang di dalam yang lain :has()
. :has()
. :has()
adalah tambahan yang kuat kepada senjata CSS, membolehkan gaya elegan dan cekap yang sebelum ini bergantung pada JavaScript. Dengan memahami keupayaan dan batasannya, kami dapat meningkatkan kemahiran pembangunan web kami dan mewujudkan kod yang lebih mantap dan boleh dipelihara.
Atas ialah kandungan terperinci Kekuatan: mempunyai () dalam CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!