CSS div # id для чего? - PullRequest
       8

CSS div # id для чего?

5 голосов
/ 11 марта 2010

в некотором коде CSS я обнаружил этот тип селектора

div#someid
  1. Это формально правильно?

  2. Если ответ на (1) - ДА, зачем нужен селектор div перед #someid, если id не должен быть уникальным в действительном веб-страница?

Спасибо!

Ответы [ 6 ]

19 голосов
/ 11 марта 2010
  1. Да, это правильно.
  2. Это может быть потому, что это делает селектор более конкретным. Чем конкретнее селектор, тем выше приоритет.
4 голосов
/ 11 марта 2010

Хорошо.

  • Таблица стилей может быть повторно использована между страницами с идентификатором для разных элементов
  • Явный тип предоставляет сопровождающему информацию об элементе
  • Это делает селектор более конкретным, например, переопределить #other div.
2 голосов
/ 11 марта 2010

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

Однажды я прочитал, что размещение div перед id может привести к тому, что браузер сначала выполнит поиск по всем div, в то время как простое использование #id не делает, но мне придется искать эту ссылку.

1 голос
/ 11 марта 2010

div # someid - выберите div с идентификатором someid
#someid - выбрать любой тип элемента с идентификатором someid

0 голосов
/ 11 марта 2010

Одной из причин наличия селектора тега является то, что он предполагает некоторый базовый CSS, например, это блочный тег с нулевыми полями / отступами.

0 голосов
/ 11 марта 2010

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

е

#someId{
color: black;
}
.someClass{
color: green;
}

И у вас был этот div:

<div id="someId" class="someClass">

Тогда что победит? (Существуют правила, регулирующие этот конкретный пример, я думаю, что идентификатор все равно победит).

Но скажем, у вас были следующие правила:

.someClass{
color: black;
}
div.someOtherClass{
color: green;
}

Тогда я бы предпочел второе правило, потому что оно более конкретное.

Однако, как отметил Дэвид, ID, как правило, оцениваются намного выше, поэтому ID будет выигрывать большую часть времени.

Так что я вижу две причины использования селектора # id элемента

I) Это должно превзойти какое-то запутанное правило, например, div # canvas> div> div # main> div: last-child> div

II) Итак, вы знаете на какой элемент он ссылается, т.е. если у вашего div есть идентификатор id "postcodeContainer" и вы пытаетесь найти его в html-файле, это может быть сложнее, потому что нужно посмотреть на каждый элемент (если вы не использовали опцию поиска / поиска в IDE), где, как div # postcodeContainer, вы знаете, что ищете элемент div.

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