Jump to content
  • 0

А зачем вообще нужен id?


angel12
 Share

Question

Заметил, что многие люди структуру странички делают так: шапка - id, content - id, footer - id, остальные дивы в классах. Это делается просто для подчёркивания уникальности этих блоков? или в другом причина?

Link to comment
Share on other sites

Recommended Posts

  • 0

Это религиозный вопрос. Номинально ничего страшного как будто не произойдет.

Но, поверьте опыту моему, лучше кесарю кесарево... То есть если вы хотите применить некие стили к элементу - то лучше всегда делать это из-за класса. Стили, прописанные на ID уже весьма трудоемко "перебить".

ID дает выигрыш только со стороны JS, более легкий селектор на нативном JS и высокая скорость выборки.

Учитывая, что на эти элементы редко кто обращает арсенал JS, "куплю билет - пойду пешком".

Link to comment
Share on other sites

  • 0

Заметил, что многие люди структуру странички делают так: шапка - id, content - id, footer - id, остальные дивы в классах.

Так делают только те, у кого мало опыта, или у тех, кто не прочитал ни одной книги. id нужно исплоьзовать только в целях программинга, не меньше, Justnewone не даст соврать :facepalmxd:

Link to comment
Share on other sites

  • 0

id нужно исплоьзовать только в целях программинга

Отчасти не соглашусь с тобой. Верстать можно как угодно, использовать id или нет дело каждого, нужно только помнить, что он должен быть уникальным, а остальное зависит от техники и навыков.

шапка - id, content - id, footer - id, остальные дивы в классах

1. либо не понимают разницы между id и class

2. либо хотят подчернуть их уникальность //как вы и сказали

3. либо просто привыкли к этому

Link to comment
Share on other sites

  • 0

Так делают только те, у кого мало опыта, или у тех, кто не прочитал ни одной книги.

На самом деле с точностью до наоборот. Практически во всех книгах — шапка, футер, колонки в примерах привязаны к id :facepalmxd:

Link to comment
Share on other sites

  • 0

А на скорость рендеринга это никак не влияет? У меня откуда-то есть такое знание, что id быстрее — для яваскрипта точно, а вот для отрисовки страницы — не уверен, хотя возможно.

Link to comment
Share on other sites

  • 0

На самом деле с точностью до наоборот. Практически во всех книгах — шапка, футер, колонки в примерах привязаны к id :facepalmxd:

Значит это неправильные книги :)

Отчасти не соглашусь с тобой. Верстать можно как угодно, использовать id или нет дело каждого, нужно только помнить, что он должен быть уникальным, а остальное зависит от техники и навыков.

Я раньше тоже так думал)

Link to comment
Share on other sites

  • 0

Тогда можешь считать все книги по верстке не правильными, в том числе и рекомендуемые тобой :facepalmxd:

Ну что поделать, раз в книгах такое пишут и дают вредные советы. Всё равно их надо читать, ведь инфа в них не вся такая грязная, а потом я например, читая книги, стараюсь извлекать из прочитанного только полезные вещи :)

p.s. кстати щас ради интереса взял одну книгу известную, и реально прям всё в id, даже не только футеры и т.д. :)

Link to comment
Share on other sites

  • 0

Смысл отказываться от id, если 100% уверен в том, что такой блок у тебя один (уникальный), что к ниму никогда не понадобится подключать js и что при оптимизации он играет некую роль, пускай не значительную, но играет.

А на скорость рендеринга это никак не влияет?

Влияет, но не значительно!

Link to comment
Share on other sites

  • 0

Смысл отказываться от id, если 100% уверен в том, что такой блок у тебя один (уникальный), что к ниму никогда не понадобится подключать js и что при оптимизации он играет некую роль, пускай не значительную, но играет.

Это важный момент. Никогда не знаешь, что будет с проектом в будущем и кто/как будет его использовать. Со-временем я пришёл к тому, что лучше оставлять эти вещи программистам, а для обычных верстальщиков классов хватает выше крыши.

Link to comment
Share on other sites

  • 0

Если человек только верстает и не знает что с его версткой будет потом, то да! Если же кроме одной верстки разработывается весь сайт, то наличие id/нет определяешь сам.

Для крупных проектов и при работе в команде (в общем то сайт должна разрабатывать команда, а не один человек) конечно лучше использовать классы!

Link to comment
Share on other sites

  • 0

Если человек только верстает и не знает что с его версткой будет потом, то да! Если же кроме одной верстки разработывается весь сайт, то наличие id/нет определяешь сам.

Для крупных проектов и при работе в команде (в общем то сайт должна разрабатывать команда, а не один человек) конечно лучше использовать классы!

Полностью согласен дружище :facepalmxd:

Link to comment
Share on other sites

  • 0

А я вот начал помечать основные блоки айдишниками после того, как получил немало жалоб от клиентов по этой теме. Я никогда не верстал под cms и всегда говорил это клиентам, но тем не менее жаловались и жаловались, что главные блоки в классах (программисты кстати).

Link to comment
Share on other sites

  • 0

Вообще использовать id для колонтитулов является чуть ли не стандартом. #header и #footer присутствует у многих известных и вызывающих доверия верстальщиков: Зельдман, Мейер, Сидерхольм, Лоусон, Дейв Ши, Чикуёнок, Харисов.

Однако, уже упомянутый Эрик Мейер в книге "Smashing CSS" написал целую главу ID vs. class

Так как раз приведена проблема и её решение.

Имеем код:

#header a {color: white;}
.navlinks a {color: #257000;}

Естественно .navlinks вложен в #header. Только вот какого цвета будут ссылки? Правильно, белого.

Какой выход из проблемы? Правильно, переименовать #header в .header (ну или не писать "#header a")

Правда потом же он пишет, что этот недостаток может быть и преимуществом, когда нужно сделать больший приоритет.

Так что не надо слишком категорично относится к тем, кто использует Id для именования глобальных блоков. Шанс, что на сайте нужно будет продублировать шапку, равен 1% (или 50% если заказчик не очень адекватен). Сам я стараюсь использовать ID по минимуму, но всё же использую, потому что не могу устоять перед соблазном сделать #header.

Вообще это вопрос довольно специфичный, так как зависит от манеры написания кода. Поэтому использование id или класса, наименование классов, форматирование СSS и использование селекторов это всё чисто субъективно (или объективно, если используется рабочие рамки). Для кого-то привычнее писать сlass="l" и сlass="r", а мне привычнее писать сlass="side-major-menu menu" (не спрашивайте почему, можете сразу называть меня неадекватом).

P.S. Как же я забыл великого Пола Айриша

Edited by Serlutin
Link to comment
Share on other sites

  • 0

Если ставить id важным блокам, а после стилизовать внутренние элементы в них ("#header > #menu a"), то потом перебить эти стили для каких-то нужных элементов оказывается непросто. Приходится переписывать весь каскад заново для каждого правила или ставить импортанты, которые потом перебивать ещё сложней.

Классы же перебивать - меньше кода нужно. Например селектор ".content ul"(любые списки внутри страницы) хорошо перебивается селектором "ul.comments"(список комментариев).

Edited by TMGLUK
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy