Как наложить специфичность - PullRequest
0 голосов
/ 25 августа 2009

В проводке на http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/

в контексте определения правил ' специфичность ' указано:

Например, если вы хотите изменить цвет фона всего div элементы, которые являются сообщениями в вашем блоге, Вы можете использовать селектор атрибута который нацелен на каждый div, чей класс атрибут начинается с «post -»:

div[class*="post"] {
  background-color: #333;
  }

Это будет соответствовать всем элементам div, атрибут class которых содержит слова «posts», в любой позиции.

...

Мой вопрос касается расширения приведенного выше примера с помощью:

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

[whatzitlooklike?]

ТНХ

1 Ответ

2 голосов
/ 25 августа 2009

Во-первых, это неправильный способ выбора элементов с определенным классом в CSS. Вот для чего .:

div.post {
  background-color: #333;
}

Я просмотрел эту статью ненадолго, но понятия не имею, почему он рекомендует другой синтаксис. Помимо того, что он требует большего набора текста, он не будет работать в Internet Explorer 6 и полностью запутает любого опытного автора CSS.

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

<div class="post anonymous">...</div>

Тогда вы можете просто добавить другое правило стиля, например, так:

div.anonymous {
  background-color: purple;
}

Важный вопрос: в каком порядке эти правила стиля появляются в вашей таблице стилей? Если .anonymous появляется последним, тогда он будет иметь приоритет везде, где он применяется. Таким образом, хотя к этому <div> применяются правила .post и .anonymous, цвет .anonymous имеет преимущество, поскольку он наступает позже. (Конечно, обратное будет верно, если вы поместите эти правила в другом порядке.)

...