Formularios
Last updated
Last updated
Bootstrap aplica estilos a los elementos de tipo formulario para convertirlos en elementos responsive, mejorar su apariencia y permitirnos crear diferentes alineaciones. La estructura básica de un formulario es la siguiente:
Con lo que obtendríamos un formulario en vertical como el de la siguiente figura, es decir, los elementos del formulario se dispondrán en vertical, unos debajos de otros.
Para permitir que Bootstrap ajuste correctamente el espaciado, cada bloque o grupo de un formulario (normalmente formado por una etiqueta label
y algún elemento de entrada de datos como un input, textarea, etc.) tendrá que estar agrupado por una caja contenedora con la clase .form-group
. Además a cada input se le tiene que aplicar la clase .form-control
.
Bootstrap sobrecarga y aplica estilos a los principales elementos de formulario definidos en HTML 5, como son: text, password, datetime, datetime-local, date, month, time, week, number, email, url, search, tel y color.
Mediante la utilización de la clase .form-inline
sobre la etiqueta <form>
podemos crear formularios que se dispondrán en una sola línea. A continuación se incluye un ejemplo de este tipo de formularios:
Obteniendo el siguiente resultado:
Aunque los campos del formulario no contengan etiquetas (labels) es necesario incluirlas por cuestiones de accesibilidad, para dar soporte a los lectores de pantalla. Por este motivo se han incluido en el ejemplo anterior con la clase
.sr-only
(screen readers only).Esta alineación tipo "inline" solo será visible para pantallas grandes. En pantallas pequeñas los elementos cambiarán a alineación vertical.
En el ejemplo se ha añadido la etiqueta ".mx-sm-3" para crear un pequeño margen en los laterales de cada elemento del formulario. Para más información sobre este tipo de etiquetas consultad la documentación oficial.
Mediante el uso del sistema de rejilla de Bootstrap podemos crear formularios con disposición en horizontal. Para esto tendremos que crear una fila (.row
) por cada grupo, y situar la etiqueta y el input cada uno en una columna. A continuación se incluye un ejemplo:
Con lo que obtendríamos:
Es importante que nos fijemos que la etiqueta .row
se añade al div
de cada grupo, manteniendo también la etiqueta ".form-group
". Además, podemos aplicar la clase de las columnas para las etiquetas label
directamente sobre dicho elemento, sin necesidad de crear una caja contenedora.
Bootstrap también incluye clases para aplicar diferentes estados de validación a un formulario. Para utilizarlo simplemente tenemos que añadir las clases: .is-valid
o .is-invalid
sobre el propio input. De esta forma, el color de los elementos del formulario cambiará. A continuación podemos ver un ejemplo:
Que se mostraría de la forma:
Podemos añadir texto o botones al principio, final o a ambos lados de campo tipo <input>
. Para esto tenemos que agrupar dicho input dentro de un .input-group
y añadir dentro del grupo el elemento que queremos agrupar con la etiqueta .input-group-addon
. A continuación se incluye un ejemplo:
Con lo que obtendríamos el siguiente resultado: