Foros del Web » Creando para Internet » CSS »

Estilos sólo en cajas de texto

Estas en el tema de Estilos sólo en cajas de texto en el foro de CSS en Foros del Web. Muy buenas, mi pregunta es: ¿Es posible aplicar estilos a la etiqueta <input> sólo cuando el atributo type sea igual a text? Es decir quiero ...
  #1 (permalink)  
Antiguo 30/09/2006, 10:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 11 años, 4 meses
Puntos: 0
Estilos sólo en cajas de texto

Muy buenas,

mi pregunta es: ¿Es posible aplicar estilos a la etiqueta <input> sólo cuando el atributo type sea igual a text? Es decir quiero aplicar estilos a los campos de texto (no a los otros input como submit, radio,...) a poder ser usando sólo algo como:

input(algo más){
...
}

La opción de definir una clase y aplicarla sólo a estos tipos (<input class="campoTexto" type="text" ../>) me gustaría evitarla, puesto que estoy hablando de unos 30 formularios con muchos campos de texto en la mayoría de ellos. Me refiero a alguna regla única que los navegadores sepan que sólo deben aplicar a los input de tipo text. ¿Alguien sabe si es posible? Yo he estado buscando y me temo que la respuesta es negativa.

Gracias antemano.

Un saludo.
  #2 (permalink)  
Antiguo 30/09/2006, 10:04
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 15 años, 9 meses
Puntos: 771
Hola GikaJavi

Puedes usar esto, pero te adelanto que no funciona en IE:
Código:
input[type=text] {border:1px solid red}
Saludos,
  #3 (permalink)  
Antiguo 30/09/2006, 10:57
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 11 años, 4 meses
Puntos: 0
Gracias JavierB, me ayuda bastante. Ahora, para hacer comprender al IE se me ocurre que podría jugar con expression. Algo así:

input{
border: expression(this.type=="text" || this.type=="password" ? "1px solid #7F9DB9" : "");
}

Sin embargo, me encuentro con que la parte que dejo a "" (lo que no es text o password) me gustaría dejarlos con los estilos por defecto del navegador, pero no lo hace así sino que muestra los radio, o los submit de otra forma. ¿Alguien sabe si hay forma de indicarle al IE que deje los estilos por defecto?

Gracias
  #4 (permalink)  
Antiguo 30/09/2006, 14:28
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 8.954
Antigüedad: 14 años, 9 meses
Puntos: 1802
Yo la opción que uso justo es
<input class="Texto" type="text" ../>
ya me acostumbré.
  #5 (permalink)  
Antiguo 30/09/2006, 14:34
 
Fecha de Ingreso: agosto-2006
Mensajes: 121
Antigüedad: 11 años, 4 meses
Puntos: 0
Gracias Rafael. Ya te digo que debería haber usado eso desde el principio, pero ahora me encuentro con que tengo un montón de cajas de texto y ninguna tiene un dichoso class="...".

Lo que acabdo de hacer es montar un script PHP que recorre todos los archivos del directorio y subdirectorio y reemplaza type="text" por type="text" class="inputtexto" en los archivos htm, html y php.

Me ha ahorrado mucho trabajo. De todas formas mantengo vigente mi pregunta sobre expression. Más bien sobre si es posible con CSS indicar que un elemento mantenga los estilos que el navegador le deja por default. ¿Alguien lo sabe?. Tal vez abra un nuevo hilo sobre esto...

Saludos a todos y gracias por vuestras aportaciones.
  #6 (permalink)  
Antiguo 30/09/2006, 14:53
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 8.954
Antigüedad: 14 años, 9 meses
Puntos: 1802
Fijate que se ha descuidado mucho css en los elementos de forms. No hay un capítulo para ello en la especificación, 2.1.

Va ser más de JavaScript que de css.

Aunque debería ser un pseudo-elemento.
  #7 (permalink)  
Antiguo 30/09/2006, 14:59
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 8.954
Antigüedad: 14 años, 9 meses
Puntos: 1802
Lo que creo es que los forms los consideran como parte del mobiliario del sistema operativo o por lo menos del navegador. Al igual que los scroll.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.