Я пишу несколько классов PHP, которые будут использоваться для создания плагина Wordpress, но также могут быть использованы в любой другой среде. После самостоятельного тестирования моего сценария все выглядит хорошо, но когда я создал для него плагин WP, возникли конфликты CSS, которые я предвидел. Сначала я планировал использовать специфичность для решения этих проблем, но это не всегда можно сделать. Это тема WP по умолчанию:
#content tr td {
border-top: 1px solid #E7E7E7;
padding: 6px 24px;
}
Если я попытаюсь указать td, чтобы не было заполнения, он не будет работать, если я не добавлю идентификатор в свою таблицу, а не в класс. Я видел популярные плагины, которые реализовали правило! Важное для каждого отдельного свойства CSS, а не использовали идентификатор для специфичности. Какой лучше? Я знаю, что правило! Important следует использовать с осторожностью, но добавление идентификатора в мою таблицу противоречит семантике, поскольку будет несколько экземпляров этой таблицы с одним и тем же идентификатором:
Атрибут ID документа
язык позволяет авторам назначать
идентификатор одного экземпляра элемента в
дерево документов.
http://www.w3.org/TR/CSS2/selector.html#id-selectors
EDIT:
Альтернативой также может быть обтекание всего в div идентификатором, но если существует правило #content #main td или подобное, оно все равно будет доминировать над моим #someid td. Кроме того, как обсуждается ниже, недопустимо иметь два элемента с одинаковым идентификатором, хотя это может «работать».