Controles de formulario en CSS
Los formularios son donde la gente escribe, elige y envía. CSS puede hacer input, textarea y select más claros y calmados — padding legible, bordes ordenados y una pista de foco que sí se ve — mientras HTML mantiene la semántica.
Un kit de controles de formulario
📊 Controles de formulario de un vistazo
| Pieza | Trabajo cotidiano |
|---|---|
input / textarea / select |
Los controles principales que estilizas juntos |
padding + border |
Dar espacio y un borde claro a los campos |
border-radius |
Suavizar esquinas |
:focus-visible |
Mostrar anillo de foco para teclado/puntero |
:disabled |
Atenuar campos que no se pueden editar ahora |
Estiliza una clase compartida (o grupo de elementos) una vez para que cada campo parezca de la misma familia. La piel de los botones espera a la siguiente lección.
Inputs de texto — espacio y bordes
Los inputs por defecto suelen verse desiguales entre dispositivos. Define ancho, padding, tamaño de fuente y un borde ligero para que escribir sea cómodo.
Input de texto base
cssinput[type="text"],
input[type="email"],
input[type="password"] {
width: 100%;
max-width: 24rem;
padding: 0.6rem 0.75rem;
font: inherit;
border: 1px solid #c5c5c5;
border-radius: 0.375rem;
background: #fff;
}
Textarea — espacio para escribir
Las textareas necesitan altura y el mismo lenguaje de padding que los inputs. Permite resize vertical si esperas respuestas largas; bloquéalo si el layout debe quedarse fijo.
Textarea cómoda
csstextarea {
width: 100%;
max-width: 24rem;
min-height: 7rem;
padding: 0.6rem 0.75rem;
font: inherit;
border: 1px solid #c5c5c5;
border-radius: 0.375rem;
resize: vertical;
}
Select — misma familia
Los desplegables deben compartir borde, radio y padding con los campos de texto para que el formulario no parezca remendado.
Select en la misma familia
cssselect {
width: 100%;
max-width: 24rem;
padding: 0.6rem 0.75rem;
font: inherit;
border: 1px solid #c5c5c5;
border-radius: 0.375rem;
background: #fff;
}
Foco que se ve
Nunca quites estilos de foco sin reemplazo. :focus-visible dibuja un anillo claro para teclado y mantiene el aspecto calmado.
Anillo de foco visible
cssinput:focus-visible,
textarea:focus-visible,
select:focus-visible {
outline: 2px solid #0b5fff;
outline-offset: 2px;
border-color: #0b5fff;
}
Campos deshabilitados
Los controles disabled deben verse no disponibles — menos opacidad o fondo apagado — sin desaparecer del layout.
Tono disabled
cssinput:disabled,
textarea:disabled,
select:disabled {
opacity: 0.6;
background: #f3f3f3;
cursor: not-allowed;
}
Un hábito calmado de campos
Mantén un estilo de campo compartido, respeta el espacio de la etiqueta, conserva el foco y deja el aspecto del botón para la lección Buttons.
Clase de campo compartida
css.field {
display: block;
width: 100%;
max-width: 24rem;
padding: 0.6rem 0.75rem;
font: inherit;
border: 1px solid #c5c5c5;
border-radius: 0.375rem;
}
.field:focus-visible {
outline: 2px solid #0b5fff;
outline-offset: 2px;
}
Pruébalo tú
- Estiliza inputs texto/email con padding, border y
border-radius. - Iguala un
textarea; ponresize: vertical. - Estiliza un
selectcon la misma familia de borde. - Añade outline
:focus-visible+ color de borde — no dejesoutline: nonesolo. - Atenúa un input
:disabledy comprueba que sigue leyéndose como campo.
Errores comunes
outline: nonesin reemplazo de foco (usuarios de teclado se pierden)- Padding/fuente diminutos que hacen doloroso escribir en móvil
- Estilizar cada control distinto para que el formulario parezca aleatorio
- Convertir esta lección en diseño de botones (eso es lo siguiente)
- Mezclar con
border-collapse/ zebra de tablas (sesión anterior)
Resumen
- Padding, borde y radio compartidos unifican inputs, textareas y selects
- Da altura y resize sensato a las textareas
- Mantén una pista
:focus-visiblevisible - Atenúa campos
:disabled; no los ocultes - Deja la cosmética de botones para la siguiente lección
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior