В чем разница между стилями для 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 — Специфичность