Soy nuevo en HTML y estoy tratando de aprender a usar formularios.
El mayor problema que tengo hasta ahora es alinear los formularios. Aquí hay un ejemplo de mi archivo HTML actual:
<form>
First Name:<input type="text" name="first"><br />
Last Name:<input type="text" name="last"><br />
Email:<input type="text" name="email"><br />
</form>
El problema con esto es que el cuadro de campo después de 'Correo electrónico' es drásticamente diferente en términos de espacio en comparación con el nombre y apellido. ¿Cuál es la forma "correcta" de hacer que se "alineen" esencialmente?
Estoy tratando de practicar una buena forma y sintaxis ... mucha gente podría hacer esto con CSS. No estoy seguro, solo he aprendido los conceptos básicos de HTML hasta ahora.
Respuestas:
Otro ejemplo, esto usa CSS, simplemente puse el formulario en un div con la clase contenedora. Y especificó que los elementos de entrada contenidos dentro deben ser el 100% del ancho del contenedor y no tener ningún elemento en ninguno de los lados.
fuente
La respuesta aceptada (establecer un ancho explícito en píxeles) dificulta la realización de cambios y se interrumpe cuando los usuarios usan un tamaño de fuente diferente. El uso de tablas CSS, por otro lado, funciona muy bien:
Aquí hay un JSFiddle: http://jsfiddle.net/DaS39/1/
Y si necesita las etiquetas alineadas a la derecha, simplemente agréguelas
text-align: right
a las etiquetas: http://jsfiddle.net/DaS39/EDITAR: Una nota más rápida: las tablas CSS también le permiten jugar con columnas: por ejemplo, si desea que los campos de entrada ocupen el mayor espacio posible, puede agregar lo siguiente en su formulario
es posible que desee agregar
white-space: nowrap
allabels
en ese caso.fuente
Una solución simple para usted si es nuevo en HTML, es usar una tabla para alinear todo.
fuente
Me resulta mucho más fácil cambiar la visualización de las etiquetas a bloque en línea y establecer un ancho
fuente
Deberías usar una mesa. Por una cuestión de estructura lógica, los datos son tabulares: por eso quiere que se alineen, porque quiere mostrar que las etiquetas no están relacionadas únicamente con sus cuadros de entrada, sino también entre sí, en una estructura bidimensional.
[considere lo que haría si tuviera cadenas o valores numéricos para mostrar en lugar de cuadros de entrada].
fuente
Para esto, prefiero mantener una semántica HTML correcta y usar un CSS lo más simple posible.
Algo como esto haría el trabajo:
Sin embargo, hay una desventaja: es posible que deba elegir el ancho de etiqueta correcto para cada formulario, y esto no es fácil si sus etiquetas pueden ser dinámicas (etiquetas I18N, por ejemplo).
fuente
Soy un gran fanático del uso de listas de definiciones.
Son fáciles de diseñar con CSS y evitan el estigma de usar tablas para el diseño.
fuente
div
s (add
solo tiene un margen izquierdo de ~ 40px) y evita cualquier confusión semántica. Además, ninguno de estos alinea las etiquetas / entradas en la misma línea.usando css
esto te da algo como:
fuente
clear
para evitar que los formularios se apilen para, por ejemplo, anchos menoresEl método tradicional es utilizar una mesa.
Ejemplo:
Sin embargo, muchos dirían que las tablas son restrictivas y prefieren CSS. El beneficio de usar CSS es que puede usar varios elementos. Desde divs, lista ordenada y no ordenada, puede lograr el mismo diseño.
Al final, querrá usar lo que le resulte más cómodo.
Sugerencia: es fácil comenzar con las tablas.
fuente
Bueno, para los conceptos básicos, puede intentar alinearlos en la tabla. Sin embargo, el uso de la tabla es malo para el diseño, ya que la tabla está destinada a los contenidos.
Lo que puede utilizar son técnicas flotantes CSS.
Código CSS
HTML
Se puede encontrar un artículo elaborado que escribí respondiendo a la pregunta del problema de flotación de IE7: problemas de flotación correcta de IE7
fuente
ul
etiquetas.)Sé que esto ya ha sido respondido, pero encontré una nueva forma de alinearlos bien, con un beneficio adicional, consulte http://www.gargan.org/en/Web_Development/Form_Layout_with_CSS/
básicamente, usa el elemento de etiqueta alrededor de la entrada y alinea usando eso:
y luego con css simplemente alinea:
fuente
La respuesta de Clément es, con mucho, la mejor. Aquí hay una respuesta algo mejorada, que muestra diferentes alineaciones posibles, incluidos los botones alineados izquierda-centro-derecha:
Agregué algo de relleno a la derecha de todas las etiquetas (
padding-right:8px
) solo para hacer que el ejemplo parezca menos horrible, pero eso debería hacerse con más cuidado en un proyecto real (agregar relleno a todos los demás elementos también sería una buena idea).fuente
css que solía resolver este problema, similar a Gjaa pero con un mejor estilo
Aquí está mi HTML, usado específicamente para un formulario de registro simple sin código php
Es muy simple, y apenas estoy comenzando, pero funcionó bastante bien.
fuente
Inserte etiquetas de entrada dentro de una lista desordenada. Haga el tipo de estilo none. He aquí un ejemplo.
Trabajó para mi !
fuente
UL
simplemente sangraría el contenido fuera del margen, no alinearía nada. Poner lasinput
sLI
solo agregaría una viñeta antes de ellos (sí, estarían alineados, como una lista, no contra las etiquetas). Además, "Input2" se adheriría alinput
elemento anterior , porqueLI
no están cerrados (no hay</li>
) y no hay un comienzo<li>
para esa "etiqueta", por lo que se tratará como debería, texto común, por lo tanto, concatenado al elemento anterior. Por último, el código tiene un error, el cierre<ul/>
debería ser</ul>
.En el CSS, debe declarar tanto la etiqueta como la entrada como display: inline-block y dar ancho de acuerdo con sus requisitos. Espero que esto te ayudará. :)
fuente
Simplemente agregue
Simplemente coloque alinear en la etiqueta de apertura.
fuente
form
que no tienealign
atributo (e incluso si lo tuviera, estaría obsoleto para el uso de estilo / CSS). Además, la etiqueta de cierre es incorrecta, debería serlo</form>
. Es posible definirstyle="text-align:center"
dentro deform
, qué alinearía todo el contenido del formulario en el centro, pero no se trataba de eso en la pregunta original. Esto nunca alinearía las etiquetas con sus campos de entrada (sí, probé en Firefox 75, solo para estar seguro).