Использовать имена тегов HTML, классы или идентификаторы в CSS? - PullRequest
7 голосов
/ 15 сентября 2009

При разработке HTML и CSS для страницы, когда мне следует использовать

img.className

против

.className

против

#idName

или какой-то другой вариант?

Существуют ли рекомендации или рекомендации?

Резюме из ответов

Спасибо всем ответчикам - здесь есть кое-что отличное!

Ответы [ 12 ]

0 голосов
/ 15 сентября 2009

Когда использовать то, что зависит от того, что вы хотите выбрать. img.className ( селектор типа + селектор класса ) выбирает только элементов IMG, находящихся в классе «className», тогда как .className (просто селектор класса) выбирает любой элемент, который находится в этом классе, и #idName ( селектор идентификатора ) любой элемент с идентификатором «idName».

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

Итак, если у вас есть элемент IMG с идентификатором «idName», который находится в классе «className»:

<img src="…" id="idName" class="className">

Свойства правил будут применяться в следующем порядке (специфичность от высшего к низшему):

  1. #idName
  2. img.className
  3. .className

Но когда вы используете определенный класс только для одного определенного типа элементов (например, «className» только для элемента IMG), вы можете использовать только .className.

0 голосов
/ 15 сентября 2009

Да. Возможно, вы захотите использовать одно и то же имя класса для двух элементов в будущем. Будь явным и понятным. Это также предотвратит наложение правил класса на непредусмотренные элементы.

h1.title { font-size:18px; } /* My h1's are big */
 p.title { font-size:16px; } /* My p's are smaller */

  .title { color:#336699; }  /* All titles are blue */

Используйте идентификаторы только при необходимости и только один раз на страницу.

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