Хотя мне не нужно убеждать в том, что селектора 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 с течением времени, что, вероятно, так).
- 1. Какие еще языки дизайна существуют?
- 2. Какие существуют причины для использования NHibernate?
- 3. Какие преимущества существуют для использования AND или &&?
- 4. Какие еще инструменты веб-аналитики существуют?
- 5. Какие еще существуют альтернативы регистрации log4net?
- 6. Какие еще существуют альтернативы Wordpress query_posts()?
- 7. Какие еще аргументы отладки существуют помимо NSZombieEnabled?
- 8. Какие еще типы существуют для объекта обещания jQuery?
- 9. Существуют ли какие-либо правила использования произвольного целочисленного идентификатора для элементов управления Android?
- 10. Какие существуют опрятные варианты использования для данных/когда?
- 11. HTML для оправдания текстовых полей
- 12. Какие существуют методы для использования SecurID и подобных технологий?
- 13. Какие существуют варианты использования для нестатических частных или защищенных событий?
- 14. Какие существуют факторы для выбора веб-сайта или использования CMS?
- 15. PHP: Какие существуют опции для повторного использования двойного имени класса?
- 16. Какие еще специальные модули (файлы) существуют на уровне пакета?
- 17. Какие еще значки существуют помимо `favicon.ico` в настоящее время?
- 18. Какие визуализаторы отладки существуют?
- 19. Какие еще существуют программы верхнего уровня OCaml? (Vista)
- 20. Какие еще существуют варианты развертывания приложения Java помимо файлов JAR?
- 21. Какие еще варианты существуют, кроме «щелчка» и «зависания» в jQuery
- 22. Какие существуют флаги/разрешения?
- 23. Какие шаблоны существуют для разработки веб-приложений?
- 24. Какие инструменты существуют для предложения потенциальных рефакторингов
- 25. Какие существуют альтернативные рамки для ASP.Net?
- 26. Какие существуют статусы cfthread?
- 27. Какие шаблоны для двигателя существуют для PHP?
- 28. Какие существуют библиотеки кросс-браузера?
- 29. Java P2P - Какие существуют опции?
- 30. Какие альтернативные среды существуют для строительства проектов?
Вы имеете в виду, что ваши одноклассники в основном используют селектор id вместо селекторов классов для применения CSS? Или что они дают каждому элементу атрибут id? –
@JohnGordon жаль путаницы, я хотел сказать, что они используют селекторов id вместо селекторов классов для применения CSS. Изменит вопрос для получения дополнительных разъяснений. – rze
Лично я чувствую, что причина, по которой вы дали, достаточно. Добавление большого количества селекторов id не является хорошим стилем и быстро становится громоздким. Особенно, если вы не можете вносить изменения, довольно сложно гарантировать, что вы изменили все, что хотели. – Dan