Tengo un escenario de forma muy básico y conocido donde necesito alinear las etiquetas junto a las entradas correctamente. Sin embargo, no sé cómo hacerlo.
Mi objetivo sería que las etiquetas estén alineadas junto a las entradas en el lado derecho. Aquí hay un ejemplo de imagen del resultado deseado.
He hecho un violín para su conveniencia y para aclarar lo que tengo ahora: http://jsfiddle.net/WX58z/
Retazo:
<div class="block">
<label>Simple label</label>
<input type="text" />
</div>
<div class="block">
<label>Label with more text</label>
<input type="text" />
</div>
<div class="block">
<label>Short</label>
<input type="text" />
</div>
Si bien las soluciones aquí son viables, la tecnología más reciente ha hecho lo que creo que es una mejor solución. CSS Grid Layout nos permite estructurar una solución más elegante.
El CSS a continuación proporciona una estructura de "configuración" de 2 columnas, donde se espera que la primera columna sea una etiqueta alineada a la derecha, seguida de algún contenido en la segunda columna. Se puede presentar contenido más complicado en la segunda columna envolviéndolo en un <div>.
[Como nota al margen: uso CSS para agregar el ':' que rastrea cada etiqueta, ya que este es un elemento estilístico, mi preferencia.]
fuente
grid-template-columns: max-content 1fr;
, la segunda columna utilizará todo el ancho restante. Esto para mí es el santo grial de tales diseños, donde no se deben especificar anchos de columna o contenido, y todo encaja perfectamente en el espacio disponible, automáticamente.Respondí una pregunta como esta antes, puedes echar un vistazo a los resultados aquí:
Crear formulario para tener campos y texto uno al lado del otro: ¿cuál es la forma semántica de hacerlo?
Entonces, para aplicar las mismas reglas a su violín, puede usar
display:inline-block
para mostrar su etiqueta y grupos de entrada uno al lado del otro, así:CSS
violín actualizado
fuente
Yo uso algo similar a esto:
Estilo:
fuente
También puedes intentar usar flex-box
fuente
Sé que este es un hilo antiguo, pero una solución más fácil sería incrustar una entrada dentro de la etiqueta de esta manera:
fuente
Aquí está el ancho de las etiquetas genéricas para todas las etiquetas de formulario. Nada arregla el ancho.
llame a la calculadora setLabelWidth con todas las etiquetas. Esta función cargará todas las etiquetas en la interfaz de usuario y descubrirá el ancho máximo de la etiqueta. Aplique el valor de retorno de la siguiente función a todas las etiquetas.
fuente
Puedes hacer algo como esto:
HTML:
CSS:
Espero que esto ayude ! :)
fuente