Есть ли причина для включения имени тега с селектором класса или идентификатора в CSS? - PullRequest
1 голос
/ 03 ноября 2010

Мне интересно, есть ли разница между div.class и .class в качестве селекторов CSS, если есть только один тег (DIV) с этим атрибутом.То же самое для идентификаторов: div#ID и #ID.

Есть идеи, в чем разница?Для меня я использую класс или ID в этих ситуациях;но только потому, что печатать быстрее.

Ответы [ 5 ]

5 голосов
/ 03 ноября 2010
  1. Они более конкретны, поэтому длинные конфликты будут заменять более короткую версию. div.foo будет иметь специфичность 11, в то время как .foo имеет специфичность 10.
  2. Поскольку они более конкретны, вы точно знаете, к какому имени узла применяется класс, а не являются универсальным правилом для всех имен узлов, это может помочь, если у вас огромное приложение с тоннами элементов, которые имеют одинаковые имена классов, это может сократить время нахождения элемента в редакторе исходного текста.
1 голос
/ 03 ноября 2010

Существует только ОЧЕНЬ МЕДЛЕННАЯ разница в специфичности.

p#id is (0,1,0,1)

и

#id is (0,1,0,0)

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

Что более важно, селекторы, не отвечающие тэгам, более эффективны для отображения в браузере.

0 голосов
/ 03 ноября 2010

Обычно эти более длинные селекторы пригодятся, когда большая часть CSS уже сделана.Иногда вы хотите настроить кое-что, скажем, на разницу между p.error и div.error, например.Поэтому вместо добавления другого класса - и, следовательно, необходимости касаться HTML - вы можете просто вместо этого добавить имя элемента в свой селектор для более детального управления.

0 голосов
/ 03 ноября 2010

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

В большинстве случаев это, вероятно, именно то, что выwant - классы существуют для того, чтобы вы могли добавить пользовательский слой значения поверх HTML.

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

0 голосов
/ 03 ноября 2010

Нет, нет разницы, если у вас есть только теги DIV определенного класса или идентификатора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...