Класс или ID на теге тела - PullRequest
20 голосов
/ 13 октября 2010

В последнее время я применяю идентификатор к тегу body моих документов HTML , чтобы обеспечить больший контроль CSS (# 9) . Недавно мне пришло в голову, что я могу сделать то же самое, применив класс к тегу body. Я хочу знать плюсы и минусы каждого выбора. Если у меня есть несколько страниц, где тег body имеет одинаковый идентификатор, лучше ли использовать класс? Как вы думаете? Почему?

ОБНОВЛЕНИЕ: класс / ID - это в основном то, что я намерен использовать, чтобы определить для таблицы стилей, к какой странице или типу страницы применяется таблица стилей. Например, это домашняя страница, страница контактов, одна из множества страниц результатов поиска, страница архива и т. Д.

Ответы [ 6 ]

20 голосов
/ 13 октября 2010

Использование класса вполне приемлемо, возможно, даже более, чем использование идентификатора. Использование идентификаторов должно быть максимально ограничено, потому что они могут конфликтовать с другими идентификаторами и нарушать такие вещи, как document.getElementById.

Селектор идентификатора более специфичен, чем селектор класса, что обычно делает его лучшим выбором для вашего варианта использования. - Дэвид Дорвард

Однако высокая «специфичность» не всегда желательна. Рассмотрим body#faq #col_b a {color:gray;} в основной таблице стилей, а затем кто-то разрабатывает плагин с серым фоном, который идет на страницу часто задаваемых вопросов, теперь им нужно использовать !important или создать другой атрибут id, чтобы придать большую специфичность.

Также рассмотрим использование нескольких классов в одном элементе тела:

<body class="faq two_column big_footer"> ...
4 голосов
/ 13 октября 2010

Селектор идентификатора более специфичен , чем селектор класса, что обычно делает его лучшим выбором для вашего варианта использования.

2 голосов
/ 13 октября 2010

ID должен быть уникальным для каждой страницы (если вы хотите корректную разметку), то есть на странице должен существовать только один экземпляр определенного идентификатора.

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

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

Для получения дополнительной информациипо ID см. здесь и другие сведения о классах см. здесь .

1 голос
/ 13 октября 2010

Лучше использовать класс, если вы планируете повторно использовать стиль на страницах. Идентификаторы хороши, если таблица стилей предназначена для конкретной страницы. Но все равно зависит от вашего приложения.

0 голосов
/ 20 ноября 2016

В HTML5 атрибут id можно использовать для любого элемента HTML (он будет проверяться для любого элемента HTML. Однако это не обязательно полезно).

В HTML 4.01 атрибут id нельзя использовать с: <base>, <head>, <html>, <meta>, <param>, <script>, <style>, and <title>.

Примечание: HTML 4.01 имеет большие ограничения на содержание значений идентификаторов (например, в HTML 4.01 значения идентификаторов не могут начинаться с цифры).

Источник: W3School

0 голосов
/ 13 октября 2010

Вы можете (читай: должен) использовать только идентификатор тега body.

ID = одноразовое использование на странице

Класс = многократное использование

1 тег тела = 1 тег идентификатора. Это может быть одинаковым на разных страницах. По сути, использование тега класса, вероятно, излишне для этой цели.

...