PassFront
  1. PassFront
  2. База знаний
  3. Основы CSS

В чем разница между стилями для id и для class в CSS?

Основы CSS

Стили по id и по class отличаются прежде всего специфичностью и переиспользуемостью.

Специфичность

  • id: (1, 0, 0) — перебивает любое количество классов.
  • class: (0, 1, 0).
#header { color: red; }
.header.dark.large { color: blue; } /* всё равно проиграет #header */

Чтобы переопределить стиль по id, придётся писать ещё более специфичный селектор или !important — так растёт «гонка специфичности».

Переиспользуемость

  • id уникален на странице — стиль нельзя применить к другому элементу.
  • Класс можно повесить на сколько угодно элементов и комбинировать.

Как на практике

  • Стили — через классы.
  • id — для якорных ссылок, связи label с input, aria-*-атрибутов и доступа из JavaScript.

Коротко для собеседования

id имеет гораздо большую специфичность и уникален, поэтому для стилей используют классы, а id оставляют для якорей, форм и доступности.

Подробнее: MDN — Специфичность

Другие вопросы раздела