TGViewer
Катерина | Про Frontend Катерина | Про Frontend @katerina_profrontend · 2.87K subscribers
Post #1553 1.51K
«Хочу стиль для p в header, но не хочу повышать специфичность» 😎

Иногда самая тривиальная задача — задать стиль для p внутри header — перерастает в бесконечную гонку селекторов. Вы пишете header p { … }, кто-то добавляет .text { … }, вы усложняете селекторы, и проект медленно погружается в «адские» веса CSS. 😞 К счастью, есть аккуратный и очень полезный приём — использовать :where()

🧩 Что делает :where():

:where() — это CSS-псевдокласс, который принимает список селекторов и всегда имеет нулевую специфичность, независимо от того, что внутри.

💡 Это значит: даже если вы положите внутрь #id .class element, итоговый «вес» всё равно ноль — для всей конструкции :where().

🔍 Небольшое напоминание про специфичность:

Специфичность
— это вес селектора. Упрощённо: inline > ID > класс/псевдокласс > элементы / псевдоэлементы.


Её используют алгоритмы CSS для выбора победителя при конфликте:

⏺️ p → специфичность (0,0,0,1)
⏺️ :where(header) p:where(header) даёт 0, p даёт 1 → итог (0,0,0,1)
⏺️ header pheader + p → (0,0,0,2) — уже селектор тяжелее

➡️ p и :where(header) p имеют одинаковую специфичность — при конфликте побеждает правило, объявлённое позже.

Как итог, используйте :where() кконтекстное правило по умолчанию без повышения специфичности: reset/normalize, базовая типографика, умолчания внутри layout-контейнеров. Это позволяет задавать нужный контекст, не ломая каскад и не раздувая селекторы. 👍
  • ❤‍🔥 15
  • 🔥 5
  • 👍 3
  • 👻 3
  • ❤ 1
More from @katerina_profrontend
  1. Feb 22, 2026Когда height: 100% чуть-чуть поломало вёрстку 🙈 Я делала простую сетку: контейнер display…
  2. Feb 20, 2026Разбираемся с Proxy в JavaScript 👨‍🏫 Proxy — посредник между кодом и объектом. Он перехв…
  3. Feb 17, 2026Compression Streams API — нативный gzip/deflate прямо в браузере 🤔 Недавно снова вспомнил…
  4. Feb 9, 2026Почему бизнес-логику не стоит писать в UI-компонентах 🧐 Часто вижу один и тот же паттерн:…
  5. Feb 6, 2026Как неочевидные импорты превращают проект в клубок зависимостей 😨 На бумаге — простое пра…
  6. Jan 29, 2026Связность и сцепленность: как написать код, который не боишься менять 🧩 Представьте проек…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →