Entrada

Formularios en Bootstrap 5 y sus nuevas características

Bootstrap: Formularios en Bootstrap 5 y sus nuevas características

Bootstrap 5 introdujo cambios significativos en los formularios, enfocándose en la simplificidad y la eliminación de jQuery.

Clases utiles

ClaseFunción
form-controlEstiliza inputs y textareas
form-labelEstilo para etiquetas
mb-3Espaciado entre elementos
btnEstilo para botones
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form class="p-2">
  <div class="mb-3">
    <label for="email" class="form-label">Correo electrónico</label>
    <input type="email" class="form-control" id="email">
  </div>

  <div class="mb-3">
    <label for="password" class="form-label">Contraseña</label>
    <input type="password" class="form-control" id="password">
  </div>

  <button type="submit" class="btn btn-primary">
    Iniciar sesión
  </button>
</form>

Input Groups

Los input groups permiten añadir iconos o texto antes o después de un input.

1
2
3
4
5
<div class="input-group">
  <span class="input-group-text">@</span>
  <input type="text" class="form-control" placeholder="usuario">
</div>

También se pueden usar para monedas:

1
2
3
4
5
<div class="input-group">
  <span class="input-group-text">$</span>
  <input type="text" class="form-control">
</div>

Validación de formularios

Además, bootstrap incluye estilos para validar campos del formulario:

1
2
3
<input type="text" class="form-control is-valid mb-2">
<input type="text" class="form-control is-invalid">

También se pueden mostrar mensajes:

1
2
3
4
5
6
7
8
9
10
11
<form class="needs-validation" novalidate>
  <div class="mb-3">
    <label for="nombre" class="form-label">Nombre</label>
    <input type="text" class="form-control is-invalid" id="nombre" required>

    <div class="invalid-feedback">
      Este campo es obligatorio
    </div>
  </div>
</form>

Formularios en linea (Grid)

Con el sistema de grilla de bootstrap, puedes organizar los campos del formulario en columnas:

1
2
3
4
5
6
7
8
9
10
11
12
<div class="row">
  <div class="col-6">
    <label class="form-label">Nombre</label>
    <input type="text" class="form-control">
  </div>

  <div class="col-6">
    <label class="form-label">Apellido</label>
    <input type="text" class="form-control">
  </div>
</div>
Esta entrada está licenciada bajo CC BY 4.0 por el autor.