нет, это не плохо, но это не всегда необходимо
инструменты, такие как Google PageSpeed и YSlow!относитесь к этим типам селекторов как к «чрезмерно квалифицированным», возможно, именно здесь вы слышите «это плохо» из - материала для чтения
, например, p#myid
- идентификаторв любом случае всегда должен быть уникальным на странице, поэтому совсем не нужно указывать его для элемента p
.ID уже имеет наибольший вес при подсчете специфичности, поэтому снова добавляется дополнительная часть, чтобы попытаться добавить более специфичность, излишне.
Однако с именами классов, такими как ваш пример, иногда может быть определенно желательно добавитьквалификатор, так как вы можете захотеть, чтобы класс можно было повторно использовать в элементах разных типов, но иметь разные свойства, в зависимости от того, например, является ли он div
или p
, а затем "квалификатор" делает селектор немного более конкретным
.error {background: red; margin: 5px;}
p.error {margin: 2px;}
Приведенный выше код означает, что вы можете использовать класс error
для любого элемента, и он будет иметь поля 5px, однако, если вы установите класс ошибки для элемента p
, второй селектор фактически что-то делает, этоперешагнув через поля первых, но по-прежнему получая цвет фона
Таким образом, они выполняют свою работу, но слишком часто вы видите, что слишком много людей перепроверяют все свои элементы, когда в этом нет необходимости ... например, если вытолько применяя этот класс .error
к элементу p
, тогдавам не понадобится второй селектор.
Практическое правило - сделать селектор уникальным как можно быстрее, начиная с его правой стороны.