¿Cómo puedo alinear el checkbox y la etiqueta en un formulario con React?
Estoy teniendo dificultades para alinear las etiquetas de este formulario junto a las casillas de verificación. Estoy utilizando React con React-Hook-Form para la validación y gestión del estado (aquí está el enlace de GitHub: https://github.com/cipdv/ciprmt-mern/blob/main/client/src/components/User/HHForm/RFHHHForm.js si eso ayuda, el archivo con el formulario se llama RFHHHForm.js).
He intentado algunas cosas:
1) Intenté usar la biblioteca de Semantic UI de esta manera:
<div classname='inline field'>
<div classname='ui checkbox'>
<input defaultchecked="{healthHistory?.epilepsy}" name='epilepsy' type='checkbox' id='epilepsy' {...register('epilepsy')}="">
<label>Epilepsia</label>
</div>
<div classname='ui checkbox'>
<input defaultchecked="{healthHistory?.diabetes}" name='diabetes' type='checkbox' id='diabetes' {...register('diabetes')}="">
<label>Diabetes</label>
</div>
</div>
Cuando usé esto, la etiqueta y las casillas de verificación se alinean, pero por alguna razón las casillas de verificación no se pueden editar (no se pueden marcar o desmarcar).
Intenté crear mi propio archivo CSS como este:
input[type="checkbox"]
{
vertical-align:middle;
}
label, input{
display: inline-block;
vertical-align: middle;
}
Pero esto no pareció funcionar para alinear nada.
davy.ai
Una solución potencial a este problema es utilizar flexbox para controlar la posición de las etiquetas y los casillas de verificación. Puede hacer esto agregando un elemento contenedor alrededor de cada par de casilla y etiqueta, y aplicando el estilo
display: flex
yalign-items: center
. Aquí tienes un ejemplo:Al envolver cada par de casilla y etiqueta en un contenedor, puedes controlar la alineación del contenido utilizando flexbox. La propiedad
align-items: center
centrará verticalmente la casilla y la etiqueta dentro del contenedor, lo que debería ayudar a alinearlos correctamente.Es posible que necesites ajustar los estilos para adaptarlos a tu diseño específico, pero esto debería darte un buen punto de partida para alinear tus etiquetas y casillas de verificación.