Laburo España: 250.000 ofertas de empleo

Sputnik

Formularios sin tablas

Domingo, 06 de febrero de 2005

Mucha gente me ha comentado que son incapaces de hacer un formulario complejo sin usar tablas para alinear los elementos del formulario. Yo siempre digo que todo es posible con css y a continuación voy a explicar como podemos hacer formularios sin tablas de una manera sencilla.

En este ejemplo lo veremos claro:






Si echais un vistazo al código vereis que no uso tablas para dibujar este formulairo. He usado un HTML simple para que se vea mucho mejor el ejemplo. He añadido un <br> despues de cada input debido a que los navegadores antiguos no lo meten despues de cada input al contrario que los nuevos.


<form>

<label for="nombre">Nombre</label>
<input id="nombre" name="nombre"><br>

<label for="direccion">Direccion</label>
<input id="direccion" name="direccion"><br>

<label for="ciudad">Ciudad</label>
<input id="ciudad" name="ciudad"><br>

</form>


Importantisimo usar tanto el elemento id como el elemento name para los elementos del form. La explicación la podeis encontrar aqui.

El código css para este formulario es algo más complejo, pero no demasiado:


label,input {
display: block;
width: 150px;
float: left;
margin-bottom: 10px;
}

label {
text-align: right;
width: 75px;
padding-right: 20px;
}

br {
clear: left;
}


En primer lugar, aplicamos un display: block a todos los elementos del formulario (label e input) lo cual nos permite alinear los elementos de una forma más bonita. Luego les aplicamos un tamaño de 150 pixeles (width: 150px que más tarde sobreescribiremos) y un margen inferior de 10pixeles para que quede más bonito y no todo apelotonao. Finalmente, les aplicamos un float: left para alinear estos componentes a la izquierda. Declarando esta ultima propiedad en ambos elementos ignoramos las diferencias entre el modelo que sigue Internet Explorer y otros navegadores. Esto funciona asi, no me pregunteis porqué.

Como colofón, he añadido un clear:left asociado a los elementos <br> para que las etiquetas y los inputs del form no queden todos unos encima de los otros. He elegido el br para meter el clear:left ya que si lo metiese directamente en los label (como deberia ser) en Opera no funcionaria correctamente.

Y esto es todo, formularios sin tablas usando css!

Recopilado de QuirksMode Tableness Forms


Comentarios

¿Y qué ventajas puede tener usar CSS ahí y no (X)HTML?

Porque yo no se las veo...

alatriste | 06-02-2005 15:05:42

Pues si quieres hacer una web sin tablas, usando capas, aqui tienes la forma de hacer formularios con el mismo resultado que con tablas.

Y como harias esto con (X)HTML ?? Con tablas verdad? Esta forma nos devuelve el mismo resultado que si hacemos el formulario con tablas, pero de una forma mucho mas sencilla (codigo (X)HTML mas sencillo), gracias a CSS.

tanke | 06-02-2005 16:06:33

Hombre, claro que el codigo (X)HTML es muy sencillo, pero en comparación se hace mucho más complicado el CSS. No sé hasta que punto compensa.

De todas formas, es muy interesante, porque está bien saber hasta dónde llega la versatilidad del CSS :)

alatriste | 06-02-2005 16:19:37

CSS :)
Muy buena explicación tanke!
Ahora el unico problem es q usen un navegador (ie) q no este actualizado, y que ironicamente no lo soporte, por ya me a pasado :S
Y el CSS es muy facil.. deberias publicar una q otra aplicación como el TopStyle, para la creación y edición de tus CSS.
Saludos

JulioNC | 14-02-2005 16:16:11

Comentar


Recordar datos

Miniblog

Favoritos

Tira e.c.o.l.*

Tira e.c.o.l.*

sputnik 2004-2005
Algunos derechos reservados.


Suscribir este blog en Bloglines

Blogarama

No a las patentes de software

LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009