This tutorial aims to guide you on how to properly create forms using Bootstrap. Bootstrap is a highly popular framework for designing responsive and mobile-first websites. By following the best practices presented in this tutorial, you can design user-friendly, accessible, and responsive forms that enhance user experience and increase form completion rates.
You will learn:
Prerequisites: Basic knowledge of HTML, CSS, and Bootstrap.
In Bootstrap, a form is a section of a web page where the user can input data. The <form>
element is used as a container for all form controls like text fields, checkboxes, radio buttons, etc.
<form>
<!-- Form controls go here -->
</form>
When writing your form, it is crucial to use form labels (<label>
) for accessibility, and to use the form-group
class for optimum spacing.
Form controls are the actual input fields where users can enter data. Bootstrap offers a variety of form controls such as text inputs, select menus, checkboxes, and more.
<div class="form-group">
<label for="exampleInputName">Name</label>
<input type="text" class="form-control" id="exampleInputName" aria-describedby="nameHelp">
<small id="nameHelp" class="form-text text-muted">We'll never share your name with anyone else.</small>
</div>
The .form-control
class makes the form controls take up the full width of their parent element, and it also adds some styling.
Bootstrap's grid system allows you to create responsive forms easily. The grid system is made up of containers, rows, and columns. To make a responsive form, wrap your form in a container, and place each form-group
in a column.
Validating form inputs is essential. Bootstrap provides built-in form validation styles. You can use the :valid
and :invalid
pseudo-classes introduced in CSS3 to style valid and invalid inputs.
<form>
<div class="form-group">
<label for="exampleInputEmail">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword">Password</label>
<input type="password" class="form-control" id="exampleInputPassword">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
This is a basic form with two input fields: one for an email address and another for a password. The form-group
class is used to add structure to the form and provide spacing between form fields. The form-control
class makes the input fields take up the full width of their parent element.
<form class="needs-validation" novalidate>
<div class="form-group">
<label for="validationCustom01">First name</label>
<input type="text" class="form-control" id="validationCustom01" required>
<div class="valid-feedback">Looks good!</div>
<div class="invalid-feedback">Please enter your first name.</div>
</div>
<!-- More form controls here -->
<button class="btn btn-primary" type="submit">Submit</button>
</form>
This form has validation built-in. The needs-validation
class and the novalidate
attribute are used to enable the custom Bootstrap validation styles.
In this tutorial, you learned how to create forms using Bootstrap, design form controls, make your forms responsive, and validate form inputs.
To continue your learning, explore more about Bootstrap forms in the official Bootstrap documentation.
Create a login form with fields for email and password. Make sure to add appropriate labels and placeholders.
Modify the login form from Exercise 1 to include form validation. Make both fields required, and ensure the email field accepts valid email addresses only.
Create a responsive registration form with fields for first name, last name, email, password, and a 'Confirm Password' field. Use form validation to ensure all fields are filled out, the email is valid, and the password and 'Confirm Password' fields match.
Solutions and explanations can be found in the Bootstrap documentation. Remember, the more you practice, the better you'll become. Happy coding!