Почему не стоит использовать id в вёрстке?

html css

Не обращайте внимание на то, что вопрос именной, именной он потому что интересно мнение того, к кому он обращён. Но интересны мнения всех профессионалов, занимающихся html-вёрсткой.
Я недавно заинтересовалась этой темой, пока что имею в активе только одну свёрстанную страничку да тучу прочитанных статей. Ни в одной из этих статей не было возражений против id в пользу class, но здесь, на ВиО, встречаю уже далеко не первое мнение, что id использовать не стоит.
Интересно аргументированное объяснение: почему? Какие есть подводные камни в этом решении?

Примечание:
> …Стили, назначенные на ID невозможно будет переназначить никаким количеством классов и имен тегов в селекторе…
Почему ж никаким? Десять классов + 1 тэг :) Вес их приоритета известен — 1 для тэга, 10 для класса, 100 для id. Комбинируя селекторы, можно очень даже удобно играться, и смысла в important я вообще не вижу, если честно, всё можно сделать исключительно на приоритетах.

> ID может встречаться в коде на странице только однажды
так ведь в этом и смысл!

Примечание:
Всем спасибо, обсуждение получилось интересным, в учебниках подобные соображения не высказывались, хотя следует признать их справедливыми.
Сложность переназначения стиля элементу с id всё же нахожу надуманной, а вот смысловое разделение по назначению — для оформления и для манипулирования — это соображение по размышлении видится более чем разумным. Вопрос читаемости кода тоже отнюдь не последний.
Ответы:
id - для яваскрипта. Потому что какой-нить объект всегда может возникнуть желание сунуть еще раз. Любой. Не сразу, но потом. Натыкался. Для верстки - только class.
ID - это не прсосто так, это описание параметров "коробки" (контейнера), куда могут входить классы для этого ЙД
Классы это локально, т.е. в рамках одного тэга.
Например, в контейнере body ссылки могут быть одного цвета, а в контейнере menu другого
2 аспекта.
2Ядерный
1. ID стоит использовать однажды. И это означает, что если вы используете ID в каком-то блоке, то применить такой же блок на той же странице -- уже нельзя. Ибо ID будет дублироваться.
2. CSS обычно используют для того, чтобы разделить данные и отображение. Оставьте ID для манипуляций данными через Javascript, а class - для изменения отображения. Это позволит легче читать код впоследствии, когда за различную функциональность отвечают _принципиально_ различные блоки.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.