Хотя мне не нужно убеждать в том, что селектора id
следует использовать экономно и что селекторы class
должны использоваться в первую очередь для применения CSS, мне не удается объяснить это членам моего группового проекта. Когда мы встречались как группа, чтобы просматривать все HTML и CSS-файлы, я заметил, что они использовали селектора id
почти для всех (включая элементы, которые не были уникальными). Хотя я объяснил, что селектора id
следует использовать для стилизации очень уникальных элементов только в CSS, а селекторов class
следует использовать для применения CSS ко всему остальному из-за их повторного использования, теперь я пытаюсь вспомнить другие причины. Итак, мой вопрос заключается в том, какие другие причины существуют для использования селекторов class
по сравнению с id
селекторами для неповторимых элементов?Какие еще существуют оправдания для использования идентификатора?
ответ
Как уже упоминалось, уникальность id
с является достаточной причиной, чтобы не использовать их в качестве селекторов, но есть больше:
Элемент может иметь несколько class
Э.С., но только один id
. Вы можете захотеть, чтобы один и тот же элемент был как .news-article
, так и .breaking-news
. Если вы используете JavaScript, у вас может быть один класс для стилизации (.unstyled-list
) и еще один для вашего скрипта (.side-menu
). Таким образом, вы можете изменить свой список на .roman-numerals
, не нарушая свой сценарий.
Что делает id
s еще хуже для применения стилей является комбинацией их уникальности и их высших specificity. Если вы используете id
s для стилизации, вы наверняка застряли в определенной гонке (особенно если вам нужно поддерживать CSS с течением времени, что, вероятно, так).
Вы имеете в виду, что ваши одноклассники в основном используют селектор id вместо селекторов классов для применения CSS? Или что они дают каждому элементу атрибут id? –
@JohnGordon жаль путаницы, я хотел сказать, что они используют селекторов id вместо селекторов классов для применения CSS. Изменит вопрос для получения дополнительных разъяснений. – rze
Лично я чувствую, что причина, по которой вы дали, достаточно. Добавление большого количества селекторов id не является хорошим стилем и быстро становится громоздким. Особенно, если вы не можете вносить изменения, довольно сложно гарантировать, что вы изменили все, что хотели. – Dan