Question

Styling un élément avec un ensemble d'attributs est facile:. E[attr]

Est-il possible de style avec un élément CSS2 basé sur l'absence d'un attribut, quelque chose comme ça E[!attr]? (Solution JavaScript n'est pas une option).

Par exemple, il existe plusieurs règles de classe suivies par la règle id:

.abc {padding:1em;}
.def {padding:2em;}
#n a {padding:0;}

Le code HTML est:

<div id="n"><a href="" class="abc">.</a><a href="" class="def">.</a></div>

Les classes abc et def ont priorité abaisseur contre la domination id-ed afin que les deux a ont un rembourrage 0. Je ne peux pas modifier l'ordre des règles ci-dessus, mais je peux changer la règle id-ed ajouter mes propres règles. Je veux éviter les règles d'écriture comme #n a.abc pour chaque classe (il y a beaucoup sommes). Au lieu de cela je besoin de quelque chose comme #n a[!class] de garder tous as classe ed intacte.

Était-ce utile?

La solution

Malheureusement, pas dans CSS2. Le mieux que vous pouvez faire est de cascade vos déclarations:

E {color: red}
E[attr] {color: blue}

Mais même cela ne peut pas vraiment être invoqué, comme IE6 ne respecte pas les sélecteurs d'attribut.

Dans CSS3, cependant, il y a la belle ": non" sélecteur de pseudo ( http://www.w3.org/TR/css3-selectors/#negation ).

EDIT

Merci pour la clarification. Que diriez-vous:

.abc {padding:1em; !important} .def{padding:2em; !important}

#n a{padding: 1em}

Autres conseils

Je ne pense pas que cela puisse se faire dans CSS2. En CSS3, vous devez utiliser les syntaxe "non" :

input:not([type="file"])
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top