2010-03-23 19 views
15

Por ejemplo, tengo un estilo CSS como esto:¿Cómo dejar que el selector css excluya un elemento?

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

El marco de validación javascript utilizo inyectará cada etiqueta de entrada con una clase = "validación en el pasado" .Para los elementos como <input type='text' /> ..., este está bien, pero para <input type='button' />, quiero que esto no se aplique, ¿cómo debo hacer esto?

+0

¿Necesitas ser compatible con IE6? – SLaks

+0

Sí, lo necesito, gracias – Sawyer

Respuesta

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

Puede ser útil mencionar que esta es la sintaxis de CSS3 que puede no ser totalmente compatible con todos los navegadores. – danyim

3

Si no es necesario para apoyar IE6, puede utilizar un selector de atributos:

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

+1 No hay forma de IE6 CSS que conozco para lograr esto de todos modos, no tiene sentido preocuparse por eso. –

+0

¡Gracias, pero necesito soportar IE6! – Sawyer

0

no creo que pueda. Pero puede inyectar una pequeña parte de javascript para analizar sus entradas y agregar la clase text-validation-passed a todas sus entradas text con la clase validation-passed (o eliminar la clase de la entrada del botón si no lo necesita).

Cuestiones relacionadas