72 votes

Existe-t-il un sélecteur CSS pour les éléments sans attribut ?

Je comprends que les règles CSS peuvent cibler des éléments spécifiés par des valeurs d'attribut, par exemple :

 input[type="text"] {}

Puis-je créer une règle qui cible les éléments qui omettent un certain attribut ? Par exemple, puis-je cibler des éléments qui n'ont pas de href ou des éléments qui ne spécifient pas de type ?

115voto

thirtydot Points 114021

Vous pouvez suivre ce modèle :

 a:not([href])
input:not([type])

Le sélecteur d'attribut est utilisé pour sélectionner des éléments avec l'attribut spécifié.

:not est pris en charge dans tous les navigateurs modernes et IE9+, si vous avez besoin d'une prise en charge d'IE8 ou d'une version inférieure, vous n'avez pas de chance.

2voto

EGC Points 1516

La seule solution qui a fonctionné pour moi était de placer a:link { } dans mon code.

j'ai aussi essayé

a:not([href]) input:not([href=""]) input:not([href~=""])

Mais pour un fichier .scss avec plusieurs balises a utilisées comme blocs de code standard (ce n'est pas mon idée), c'était la seule solution.

1voto

steveax Points 6997

Pour les liens, vous pouvez simplement utiliser :

 a { color: red; }
a:link { color: green; }

violon : http://jsfiddle.net/ZHTXS/ pas besoin de javascript.

Pour les attributs de formulaire, utilisez le modèle not attribute noté ci-dessus input:not([type]) et si vous devez prendre en charge les anciennes versions d'IE, j'ajouterais probablement une classe et utiliserais une feuille de style spécifique à IE liée à des commentaires conditionnels.

1voto

morsik Points 127

Vous pouvez toujours définir un style différent pour a et a href

Vérifie ça: http://jsfiddle.net/uy2sj/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X