Подтвердить что ты не робот

Почему я не должен использовать идентификаторы стилей с помощью CSS?

Возможный дубликат:
Почему выбор по идентификатору не рекомендуется в CSS?

Я читал в бесчисленных потоках и статьях, которые я НИКОГДА не должен использовать атрибут id, чтобы вместо этого использовать стили css, но классы.

Я знаю, что классы многократно используются, но только один сам по себе не является аргументом, достаточным для того, чтобы не использовать их. В конце концов, ID необходим для javascript, так почему бы не воспользоваться ими, так как они никуда не уходят?

Может кто-нибудь объяснить мне причины этих мнений?

4b9b3361

Ответ 1

Идентификаторы стилей идут против DRY принципов и это то, чего следует избегать, если это имеет смысл. Бывают ситуации, когда вам нужно стилизовать один объект, и вы знаете, что он никогда не будет использоваться ничем другим на странице, поэтому я думаю, что никогда не стильные идентификаторы неискренны, если вы знаете о риске ремонтопригодности, и это приемлемо что вам нужно сделать, чтобы выполнить работу.

Ответ 2

Нет особых причин избегать использования ID-селекторов. Не верьте всему, что вы читаете.

Тем не менее, если вы разрабатываете все с идентификаторами, вы теряете преимущества классов.

Ответ 3

Если вы ищете эмпирическое правило о том, когда использовать идентификаторы, здесь один, который я кодирую по:

идентификаторов:

  • Верхние элементы, которые никогда не повторяются, например #top, #wrapper, #footer и т.д. и т.д.
  • Элементы, которые должны быть идентифицированы внешним script или похожим.
  • <a name="anchor_name" id="anchor_name"><a>. Хорошая практика кодирования заключается в предоставлении идентификатора якорям.

Ответ 4

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

<div id="myid" class="box"></div>
.box {
    padding:1em;
    border:1px solid #ccc;
    color:#222;
}
#myid {
    padding:2em;
}

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