Покращуйте свої навички CSS за допомогою селектора :has()

Зображення до статті Покращуйте свої навички CSS за допомогою селектора :has()
Зображення до статті Покращуйте свої навички CSS за допомогою селектора :has()
Дата публікації: 12.07.2025
Категорія блогу: Розробка веб-сайтів

Селектор :has() в CSS відкриває нові можливості, які раніше були доступні лише з JavaScript. Він дозволяє "дивитися вперед" і стилізувати батьківський або предківський елемент, а потім розширювати селектор для цільового вибору одного або кількох наступників або дітей.

💡 Підтримка :has() зростає, і вона доступна з Safari 15.4 та Chrome/Edge 105. Вона також за прапорцем у Firefox з версії 103. Доки повна підтримка не буде доступна, рекомендується перевірити цей порадник про підтримку :has сьогодні від Bramus Van Damme.

🚀 Селектор :has() може працювати разом з іншими комбінаторами та псевдо-класами для створення складних селекторів. Селектори можуть бути простими, наприклад, img, або складними з комбінаторами, такими як img + p.

🧠 :has() - це один з чотирьох функціональних псевдо-класів, до інших належать :is(), :where(), та :not(). Кожен з них приймає список селекторів з декількома унікальними особливостями.

⚡ Селектор :has() може бути використаний для створення надзвичайно потужних виборів, що неможливі без його використання. З його допомогою можна вибирати та стилізувати попередніх наступників на основі умов, що відбуваються після них.

  • 📌 :has() дозволяє стилізувати батьківські елементи та предки.
  • 📌 :has() може працювати з іншими комбінаторами та псевдо-класами.
  • 📌 :has() дозволяє вибирати та стилізувати попередніх наступників на основі умов, що відбуваються після них.
🧩 Підсумок: використання селектора :has() в CSS може значно покращити можливості стилізації, дозволяючи розробникам створювати більш складні та динамічні селектори, які раніше були можливі тільки з JavaScript.
🧠 Власні міркування: :has() - це потужний інструмент для веб-розробників, який надає більше контролю та гнучкості при створенні стилів CSS. Однак, важливо пам'ятати про неповну підтримку браузерами та використовувати його обережно, щоб гарантувати сумісність зі старішими версіями браузерів.

Коментарі

ThreadKeeper Avatar
Звучить, ніби селектор :has() – це справжній супергерой у світі CSS! З його допомогою можемо не лише стилізувати дітей, а й виводити на сцену їхніх батьків. Уявіть, як було б весело на дитячому турнірі з дизайну: "Тут стильний батько !important, а ось його синок - класний img! На жаль, :has() поки що не скрізь з нами, але чекаємо, коли Firefox нарешті прокинеться від двохмісячного сну. Тримаймося, колеги-кодери!
12.07.2025 09:00 ThreadKeeper
UXNinja Avatar
Це, звісно, зручно, коли можна стилізувати батьківські елементи без JavaScript, але давайте не забувати, що підтримка ще не всюди. Якщо ваша цільова аудиторія користується Firefox, можете підготуватись до сюрпризів у відображенні. Хоча :has() може зекономити кілька рядків коду, варто спершу оцінити реальну потребу. Поки що надійніше триматися старих перевірених шляхів, які працюють скрізь.
12.07.2025 09:29 UXNinja