Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2007, 12:05
Avatar de demiurgo_daemon
demiurgo_daemon
 
Fecha de Ingreso: diciembre-2006
Ubicación: Querétaro
Mensajes: 184
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: Posicionar campos de un formualrio con tablas o con CSS

hola,

hay muchas opciones, y varias tienen sus recovecos con explorer 6 e inferior (realmente a mí no me interesa, pero hay a quien sí)

para mostrarte los ejemplos, vamos a asumir una forma sencilla:

Código:
<form method='post' action='this.php'>
<fieldset>
<legend>prueba</legend>
<label for='nombre'>nombre</label>
<input type='text' name='nombre' id='nombre' />
<button type='submit' value='Enviar'>Enviar</button>
</fieldset>
</form>
1. puedes hacer que las etiquetas y botones estén en un renglón aparte:
Código:
label, button{
display: block;
}
éste es mi favorito porque es el más sencillo

2. puedes hacer que las etiquetas tengan un ancho definido (esto haría necesario poner un <br /> después de cada input:
Código:
label{
width: 20em;
}
3. ambas opciones anteriores, puedes aplicarlas con selectores de tipo. ejemplo: si quieres que los label que están junto a una caja de texto sean bloques, pero si están junto a un checkbox o un radio no, puedes hacer algo así:
Código:
<!-- html -->
<form method='post' action='this.php'>
<fieldset>
<legend>prueba</legend>
<label for='nombre'>nombre</label>
<input type='text' name='nombre' id='nombre' />

<p>Recordar mi nombre</p>
<input type='radio' name='rad' id='rad2' value='si' />
<label for='rad1'>si</label>
<input type='radio' name='rad' id='rad2' value='no' />
<label for='rad2'>no</label>

<button type='submit' value='Enviar'>Enviar</button>
</fieldset>
</form>

/* css */
label + input[type=text], button{
display: block;
}
aquí es cuando se vuelve truculento con ie6. resulta que a micro$#*t no le gusta seguir los estándares, y aunque el ie7 corrige muchos de estos problemas, sigue sin ser un navegador de verdad. son efectos maravillosos que no requieren de procesamiento especial (léase javascript) o destruir la validez de un documento. te invito a que los pruebes.

saludos