Maestros del Web


Estás en Inicio / Editorial / CSS

21.04.2006

Estilizando Formularios

Este es un artículo que te servirá de guía para crear formularios totalmente accesibles usando XHTML y hojas de estilo en cascada (css) para darle formato.

Una de las preguntas más frecuentes cuando se habla de diseño bajo css es: ¿cómo se pueden estilizar los formularios?, debido a que en muchas ocasiones es la parte del sitio, que no queda de acuerdo al estilo del resto de los elementos.

En realidad la estilización de formularios es más simple de lo que parece, sin embargo, se necesita un par de trucos para adquirir la apariencia que se desea, además hay que tomar en cuenta que esta limitada por ciertas características que no todos los navegadores actuales soportan.

Para comenzar, lo primero que tenemos que hacer es el diseño de como queremos que se vea nuestro formulario. Desde este punto vamos tomar en cuenta muchas consideraciones que veremos más adelante y que para este caso no tomé en cuenta, con el propósito de resaltar estas limitaciones. Aquí podemos ver una imagen del diseño inicial .

El Marcado

El código (X)HTML de este ejemplo no tiene mayor ciencia, únicamente se trata de un formulario con 4 campos, algo típico de un sistema de comentarios, queda algo como lo siguiente:

<form name="formulario" id="formulario" method="">
<label for="nombre">Nombre:</label> <input type="text" id="nombre" class="campo" />
<label for="email">E-mail:</label> <input type="text" id="email" class="campo" />
<label for="url">URL:</label> <input type="text" id="url" class="campo" />
<label for="comentario">Comentario:</label> <textarea id="comentario" class="campo"></textarea>
<input type="submit" id="boton_enviar" name="enviar" value="Enviar" /> </form>

Lo único que hay que resaltar es la falta de definición del tamaño de los campos de texto, esto lo haremos por medio de CSS, así que no es necesario definirlos por el momento.

Estilizando

Aplicar estilos a formularios no es diferente de hacerlo con cualquier otro elemento, para empezar, vamos a agregar color al fondo de la página para ver como esta nuestro formulario inicialmente este primer paso .

body { background: #A0CE00; }

Como podemos ver nuestro formulario esta desordenado y no se bien. Lo primero que vamos a hacer es organizarlo, para facilitar después el resto del proceso. Vamos a desplegar las etiquetas como block para que se simulen los cambios de línea además de definir un poco el estilo general del formulario.

form { padding: 50px; background: #84AA00; width: 250px; }
label { font-size: 14px; font-family: Arial, Helvetica, sans-serif; color: #FFF; display: block; }
.campo { margin-bottom: 20px; }

Así es como se ve nuestro formulario actualmente, ya está organizado pero se sigue viendo simple y el siguiente paso será cambiarlo.

La primer parte importante para estilizar las cajas de texto es esconder lo que tenemos por default, esto nos va a permitir mas libertad ya que en realidad el truco nada más se trata de reemplazar las cajas con una imagen. Para que las cajas se escondan, sin perder funcionalidad vamos a fundirlas con el color de fondo cambiando tanto los bordes como el fondo.

.campo { width: 254px; height: 30px; margin-bottom: 20px; border: 1px Solid #84AA00; background:
#84AA00; }
#comentario { width: 294px; height: 193px; }

En este tercer ejemplo , nuestro formulario parece no existir, sin embargo si movemos el cursor un poco vemos que sigue estando ahí.

Lo siguiente será añadir las imágenes como fondo, un simple background-image bastará para lograr el efecto.

.campo { width: 254px; height: 30px; margin-bottom: 20px; border: 1px Solid #84AA00; background:
#84AA00; background-image: url(f1.jpg); background-repeat: no-repeat; padding: 2px; color: #669966;
font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
#comentario { width: 254px; height: 193px; background-image: url(f2.jpg); background-repeat:
no-repeat; }

Añadimos el atributo padding para que el texto no quede totalmente pegado a la imagen además de cambiar el color, tamaño y fuente del texto como detalles.

Lo único que nos falta es el botón de enviar, el proceso es el mismo, lo único extra en este caso es la indentación del texto en caso de que no se quiera que este se vea.

#boton_enviar { width: 88px; height: 27px; margin-left: 80px; background: #84AA00; border: 1px Solid
#84AA00; background-image: url(boton.jpg); text-indent: -9999px; }

Extras

Básicamente el formulario esta listo, vamos a agregar un pequeño efecto para que se vea aún mejor. Hice un par de imágenes extra sin sombreado que se utilizan cuando el usuario pasa el cursor sobre la caja de texto.

.campo:hover { background-image: url(f3.jpg); }
#comentario:hover { background-image: url(f4.jpg); }

Si están utilizando un buen navegador, el efecto se ve sin problema alguno pero en Internet Explorer la situación es diferente ya que como sabemos, no reconoce el uso de hover en elementos que no sean enlaces, sin embargo, no hay ningún problema pues se sigue viendo la imagen inicial.

Aquí está nuestro ejemplo finalizado , pueden combinarlo con otros efectos como la decoración del drop-down menu para lograr formularios que se vean muy bien. Como mencione al principio, nos encontramos aún con muchos problemas al estilizar formularios, en este ejemplo, podemos ver que las barras de scroll en el área de texto pueden llegar a verse mal y desafortunadamente estas no son estilizables más que en IE.

Sin embargo, con un poco de imaginación y un par de sencillos hacks podemos lograr efectos para que los formularios vayan de acuerdo con el estilo del sitio.

Califica esta nota:

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (3 votos, promedio: 4.67 de 5)
Loading ... Loading ...

Sobre el autor

Oscar Alcalá
Desarrollador Web

Si eres nuevo en Maestros del Web y te agradan nuestras publicaciones, te invitamos a suscribirte a nuestro Feed.

Sindícanos en: Google Reader, Bloglines, My Yahoo o My MSN | ¿Qué es el Feed?

Comentarios

19 comentarios en total.

  1. cvander 28.04.2006 - 15:17 - #

    Sin duda un tutorial muy útil para actualizar nuestros formularios. Debo confesar que aún he utilizado tablitas para maquetarlos, cuando definitivamente es más sencillo a través de CSS.

  2. Hildergarn 07.05.2006 - 19:24 - #

    gracias por el articulo. Me ha gustado bastante ya que era algo que buscada desde hace mucho tiempo.

  3. rrufo 09.05.2006 - 10:16 - #

    no utilizo css, pero creo q tengo q empezar.

  4. NINAN 27.06.2006 - 16:02 - #

    Gracias por el art{iculo, porque me ha servido de mucha ayuda.

  5. drjrules 12.07.2006 - 17:29 - #

    Muy bueno todo el artículo. Una pregunta: ¿las imágenes gif hay forma de conseguirlas?, sino pues intentaré reproducirlas yo.

  6. Jesus 17.07.2006 - 10:53 - #

    que buen tutorial, me va a servir de mucho, pero podrían publicar un archivo comprimido con las imagenes de las cajas de textos, o si pueden por favor envienmela a mi corrreo, jhmarcano@gmail.com. Saludos

  7. Jesus 17.07.2006 - 10:54 - #

    que buen tutorial, me va a servir de mucho, pero podrían publicar un archivo comprimido con las imagenes de las cajas de textos, o si pueden por favor envienmela a mi corrreo, jhmarcano@gmail.com. Saludos

  8. ruben 17.07.2006 - 18:44 - #

    ta shido el css… yo lo uso y a los clientes les gusta musho

  9. Claudio Gonzalez Soto 20.07.2006 - 21:28 - #

    Muy bonito, excelente, la verdad que vengo hace una semana aprendiendo a utilizar CSS, y la verdad que me parece fabuloso, estoy cambiando el diseño de mi página de a poco, aún no he subido la nueva con css, en la cual hasta aqui no he utilizado tablas, y llegue a la parte del formulario y buscando me encontré con este fabuloso manual. Muchas gracias por brindarnos tus conocimientos y me adhiero a la petición de las imagenes. por fa, si me las puedes mandar a mi correo. claudio.gonzalez@trabajohbl.com

    // http://www.trabajohbl.com //

  10. NELSON DAVID 02.10.2006 - 10:22 - #

    hola a mi me gustaria poder realizar un formulario para comentarios de mi sitio web…similar a este espero poder llegar a lograrlo……

  11. Interkram 16.11.2006 - 05:44 - #

    Muy bueno el formulario con la idea de los graficos, le da mucho dinamismo, la pena es que IE no lo aprecie. Veremos el IE7.
    Gracias por sus explicaciones.

  12. Phantom 13.12.2006 - 15:41 - #

    Coincido con los demás… sería bueno conseguir las imágenes para completar la práctica.
    Muy buen tutorial.

    Un saludo,

  13. DgFcljpzU0 11.01.2007 - 10:41 - #

    Hi! Very nice site! Thanks you very much! 8VoOZ5HaohWJe

  14. Britneyuuvvg 01.03.2007 - 00:27 - #

    movable breast lump potato masturbation add me buttons for myspace grin n bear it strippers gay clubs in the rio grande valley

  15. yuu 13.03.2007 - 12:59 - #

    yuyu

  16. adrian 02.09.2007 - 12:30 - #

    ola me pueden ayudar ya tengo el formulario de comentarios lo unico es q no funciona q me falta para q los visitantes puedan dejarme sus comentarios u opiniones prejmplo sobre mi web me podrian mandar algun manual o de como hacerlo gracias
    adrian_enrique@hotmail.com

  17. Escorts Madrid 02.03.2008 - 04:15 - #

    Adrian, mírate las editoriales de PHP

  18. lekent 04.06.2008 - 11:11 - #

    hola que tal bueno tu aporte pero si checas en internet esplorer 6 y 7 si tu tecleas varias letras la iamgen de fondo va desapareciendo a conforme vas esxribiendo cuando sobrepasas los caracteres por default e lo que yo ando buscando para coreguir

  19. adrian 29.06.2008 - 17:15 - #

    adrian 02.09.2007 - 12:30 - #
    ola me pueden ayudar ya tengo el formulario de comentarios lo unico es q no funciona q me falta para q los visitantes puedan dejarme sus comentarios u opiniones prejmplo sobre mi web me podrian mandar algun manual o de como hacerlo gracias
    esta es mi pagina http://www.adess.tk y no funciona el formulario sale elñ erropr 404 algo asi

Deja tu Comentario


Maestros del Web se reserva el derecho de moderación de los comentarios. Evita utilizar palabras soeces, ataques directos, descalificativos, insultos, de lo contrario tu comentario será eliminado.


Boletín

Agrega nuestro feed a  Netvibes
wikio Add to Technorati Favorites

-


Maestros del Web es el punto de encuentro para los entusiastas de la red.

Creative Commons by-nc-sa 3.0 | Política de Privacidad | CMS: Wordpress