Есть ли причина, по которой вы бы объявили HTML-селектор с идентификатором в CSS? - PullRequest
1 голос
/ 24 августа 2011

Отредактированная версия оригинала

Чем объявление div#test отличается от объявления его просто #test?Также я могу объявить оба в одной и той же таблице стилей, т.е.

#div test {

}

#test {

}

Исходный вопрос

Если бы я объявил следующий стиль div#test чем это отличаетсядля ссылки на элемент div с идентификатором test например <div id="test">content</div>

РЕДАКТИРОВАТЬ

Чтобы пояснить, что я имею в виду, как div#test отличаетсяпросто #test и затем ссылку на него в элементе div.

Ответы [ 3 ]

4 голосов
/ 24 августа 2011

имеет смысл, если у вас есть глобальный css для каждой страницы, и на одной странице вы добавляете #test к элементу div, а на другой странице вы добавляете его для p. в таком случае, даже если p имеет id #test, к нему не будут применяться правила css, если вместо # test используется div # test.

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

1 голос
/ 24 августа 2011

Если вы используете div # test в вашем css, он будет искать любой идентификатор с именем test, принадлежащий div, как если бы вы только что сделали # test , это может быть применено к любому другому элементу. Это также добавляет специфичность вашему выбору и может помочь тем, кто просматривает ваш код, точно знать, на что вы ссылаетесь.

Пример.

#test { margin-top: 10px; }

<ul id="test">
  <li><a href="#">LinkyLink</a></li>
</ul>

div#test { background: blue; }

<div id="test">
    <p>This is jargan!</p>
</div>

Надеюсь, это поможет.

1 голос
/ 24 августа 2011

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

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