Объединить атрибуты CSS и псевдоэлементы?
Как я могу объединить селектор псевдоэлементов (:after
) с селектором атрибутов ([title]
)?
Я попытался использовать div[title]:after
, но это не работает в Chrome.
HTML:
<div title="foo">This div has a title.</div>
<div>This div does not have a title.</div>
CSS
div:after {
content: "NO";
}
div[title]:after {
content: "YES";
}
Демо: http://jsfiddle.net/jmAX6/
Он показывает мне "ДА" в конце каждого из этих div, когда он должен показывать "NO" после второго div.
Я запускаю Chrome 17.0.963.38. Кажется, что он отлично работает в Safari 5.1.2.
Ответы
Ответ 1
Это выглядит как ошибка, которая, наконец, была сообщена. Если вы добавите правило CSS для div[title]
в любом месте вашей таблицы стилей с хотя бы одним объявлением, ваше правило div[title]:after
будет волшебным образом применяться. Например:
div:after {
content: "NO";
}
div[title] {
display: block;
}
div[title]:after {
content: "YES";
}
Смотрите обновленную скрипту.
Кажется, что это связано с тем, что ваш второй div
имеет или не имеет определенных HTML-атрибутов, как показано в комментариях ниже.