Combiner les attributs CSS et les sélecteurs de Pseudo-éléments?

Comment puis-je combiner un sélecteur de pseudo-éléments ( :after ) avec un sélecteur d'attribut ( [title] )?

j'ai essayé d'utiliser div[title]:after , mais cela ne fonctionne pas dans le 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";
}

Démo: http://jsfiddle.net/jmAX6 /

il me montre "oui" à la fin de chacun de ces div's, quand il devrait montrer " Non" après la deuxième div.

J'exécute Chrome 17.0.963.38. Il semble fonctionner très bien dans Safari 5.1.2.

6
demandé sur BoltClock 2012-01-21 13:04:07

1 réponses

cela ressemble à un bug, qui a finalement été rapporté . Si vous ajoutez une règle CSS pour div[title] n'importe où dans votre feuille de style avec au moins une déclaration, votre règle div[title]:after s'appliquera comme par magie. Par exemple:

div:after {
    content: "NO";
}
div[title] {
    display: block;
}
div[title]:after {
    content: "YES";
}

Voir la mise à jour du violon .

Il semble aussi avoir quelque chose à faire avec votre deuxième div avoir ou ne pas avoir certains Attributs HTML, comme indiqué dans les commentaires ci-dessous.

9
répondu BoltClock 2012-12-13 10:24:57