Tengo un formulario con botones de opción que están en la misma línea que sus etiquetas. Sin embargo, los botones de opción no están alineados verticalmente con sus etiquetas como se muestra en la captura de pantalla a continuación.
¿Cómo puedo alinear verticalmente los botones de opción con sus etiquetas?
Editar:
Aquí está el código html:
<input checked="checked" type="radio" name="user_level" id="rd1" value="1"/>
<label for="rd1">radio 1</label><br/>
<input type="radio" name="user_level" id="rd2" value="2"/>
<label for="rd2">radio 2</label><br/>
<input type="radio" name="user_level" id="rd3" value="3"/>
<label for="rd3">radio 3</label><br/>
Y el código css:
label{
padding:5px;
color:#222;
font-family:corbel,sans-serif;
font-size: 14px;
margin: 10px;
}
Respuestas:
Prueba esto:
fuente
height= 100%;
ya que mi elemento principal no estableció explícitamente la altura.Ponle clase a toda la radio. Esto funcionará para todos los botones de opción en la página html.
Violín
fuente
padding: 0; margin: 0
a los elementos de entrada, y parece ser necesario para obtener la alineación correcta.Sé que había seleccionado la respuesta de menuka devinda, pero mirando los comentarios a continuación, estuve de acuerdo e intenté encontrar una solución mejor. Me las arreglé para llegar a esto y, en mi opinión, es una solución mucho más elegante:
Gracias a todos los que dieron una respuesta, su respuesta no pasó desapercibida. Si aún tiene otras ideas, no dude en agregar su propia respuesta a esta pregunta.
fuente
intente agregar
vertical-align:top
en el cssPrueba: http://jsfiddle.net/muthkum/heAWP/
fuente
font-size
, intente usardisplay:flex
. Aquí hay una demostración, jsfiddle.net/et8z47q5También podría agregar un poco de flexibilidad a las respuestas.
fuente
Puedes hacer así:
MANIFESTACIÓNfuente
Algo como esto debería funcionar
CSS:
fuente
Solo alineo el punto medio vertical de los cuadros con la línea de base del cuadro principal más la mitad de la altura x (en.wikipedia.org/wiki/X-height) del principal.
fuente
Muchas de estas respuestas dicen usar
vertical-align: middle;
, lo que hace que la alineación se acerque, pero para mí todavía está desviada por unos pocos píxeles. El método que utilicé para obtener una verdadera alineación 1 a 1 entre las etiquetas y las entradas de radio es este, convertical-align: top;
:fuente
Me gusta poner las entradas dentro de las etiquetas (bonificación adicional: ahora no necesita el
for
atributo en la etiqueta) y ponervertical-align: middle
la entrada.(
-2px margin-top
Es cuestión de gustos).Otra opción que me gusta mucho es usar una mesa. (¡Mantenga sus horquillas de tono! ¡Es realmente agradable!) Significa que debe agregar el
for
atributo a todas sus etiquetas yid
a sus entradas. Recomendaría esta opción para etiquetas con contenido de texto extenso, en varias líneas.fuente
Si bien estoy de acuerdo en que las tablas no deben usarse para diseños de diseño, contrariamente a la creencia popular, pasan la validación. es decir, la etiqueta de la tabla no está obsoleta. La mejor manera de alinear los botones de radio es usar el CSS central de alineación vertical con márgenes ajustados en los elementos de entrada.
fuente
Agregar
display:inline-block
etiquetas y dárselaspadding-top
arreglaría esto, creo. Además, solo establecerline-height
en las etiquetas también lo haría.fuente
Hay varias formas, una que preferiría es usar una tabla en html. Puede agregar dos tablas de tres filas de colores y colocar los botones de opción y la etiqueta.
fuente
.tablecell{dispay:table-cell;} ... <div class="tablecell">
parece más una solución extraña para las personas que no quieren admitir que están usando tablas ...