x
 
Юрий Мазурский
4 февраля 2021
Советы почтой каждую неделю
Пожалуйста, получите наше письмо, чтобы подтвердить свой адрес:
Вы подписаны на «Советы за неделю»:

Часто воз­ни­кает соблазн исполь­зо­вать атри­бут id как селек­тор для сти­ли­за­ции эле­мен­тов в ЦСС, например:

<div id="container"></div>
#container {
  max-width: 1000px;
  margin: 0 auto;
}

Так делать не стоит по несколь­ким причинам:

  1. По стан­дарту ХТМЛ, айди дол­жен встре­чаться только один раз на стра­ницу. Ино­гда это трудно про­кон­тро­ли­ро­вать — вы можете про­сто не учесть, что на самом деле эле­мент будет исполь­зо­ваться несколько раз.

  2. Айди имеет самую высо­кую спе­ци­фич­ность после инлай­но­вых сти­лей, поэтому его трудно пере­опре­де­лить при кас­ка­ди­ро­ва­нии правил.

Я при­ду­мал тупое пра­вило — классы для сти­лей, айди для Явас­крипта. Это удобно — одного взгляда на код доста­точно, чтобы понять, какие эле­менты интер­ак­тив­ные (с айди), а какие — нет.

P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Поделиться
Отправить

Комментарии

Aleksey Elyseev
4 февраля 2021

Если следовать совету, сложность контроля использования id никуда не исчезает.

Алексей Самохин
4 февраля 2021

id нужны в двух случаях:
1) Для навигации по странице через # в строке браузера;
2) Для привязки label-ов к соответствующим элементам формы.

Для классов, к которым цепляются стили можно использовать специальный префикс, типа js-. И не вешать на js-классы стили.

В современных реактивных фреймворках уже пропадает необходимость использования специальных классов для привязки скриптов, так как интерактивность реализуется иначе.


Цель рубрики — обсуждение вопросов дизайна всех видов, текста в дизайне и взаимоотношений дизайнеров с клиентами.

Мы публикуем комментарии, которые добавляют к уже сказанному новые мысли и хорошие примеры. Мы ожидаем, что такие комментарии составят около 20% от общего числа.

Решение о публикации принимается один раз; мы не имеем возможности комментировать или пересматривать свое решение, хотя оно может быть ошибочно. Уже опубликованные комментарии могут быть удалены через некоторое время, если без них обсуждение не становится менее ценным или интересным.

Вот такой веб 2.0.

Сколько времени тратите на планирование реализации «фичи» и сколько времени на написание самого кода? Как сбросить дефолтные стили браузера 1 Как сделать вынос ссылок в отдельную колонку? 1 А может быть маг полководцем или полководец магом?




Недавно всплыло

Аврал сразу в двух проектах 1 1 Тотальное упрощение текста 3 4