2010-03-23 26 views
15

Par exemple, j'ai un style css comme ceci:Comment laisser le sélecteur css exclure un élément?

input.validation-passed {border: 1px solid #00CC00; color : #000;} 

Le cadre de validation javascript J'utilise injectera chaque balise d'entrée avec une class = « validation passé » .Pour les éléments tels que <input type='text' /> ..., ce est ok, mais pour <input type='button' />, je veux que ce n'est pas appliqué, comment dois-je faire cela?

+0

Avez-vous besoin de soutenir IE6? – SLaks

+0

ouais, je ai besoin, merci – Sawyer

Répondre

20
.validation-passed:not(input[type="button"]) {color:red;} 
+4

Il peut être utile de mentionner que cette syntaxe CSS3 n'est peut-être pas entièrement supportée par tous les navigateurs. – danyim

3

Si vous n'avez pas besoin de soutenir IE6, vous pouvez utiliser un sélecteur d'attribut:

input[type="text"].validation-passed {border: 1px solid #00CC00; color : #000;} 
+0

+1 Il n'y a pas de façon IE6 CSS que je sache pour accomplir cela de toute façon, pas de quoi s'inquiéter à ce sujet. –

+0

Merci, mais je dois soutenir IE6! – Sawyer

0

Je ne pense pas que vous pouvez. Mais vous pouvez injecter un petit morceau de javascript pour analyser vos entrées et ajouter la classe text-validation-passed à toutes vos entrées text avec la classe validation-passed (ou supprimer la classe de la saisie du bouton si vous n'en avez pas besoin).

Questions connexes