Bootstrap 4 - Forms

Bootstrap 4 Tutorials


The HTML form is another typical web page component that helps take users' input and transmit it to the system's backend. Bootstrap 4 uses extended classes in conjunction with HTML markup to make different elements of forms stylish and responsive. This tutorial will teach you about the various Bootstrap 4 classes for Forms.

Form Layouts in Bootstrap 4

Bootstrap 4 form layouts help in creating an automatic global styling. All input components and elements such as <input>, <textarea>, <select>, etc are having a class .form-control that has a default width of 100%. It is of two types:

  • Inline form
  • Stacked form

Bootstrap 4 Inline Form

In inline form, all form elements are aligned on the same line. The .form-inline class is used in the <form> tag to create this type of form.

Example:

Example Code:

<form class="form-inline" role="form">
    <div class="form-group">
        <input class="form-control mb-2 mr-sm-2" type="text" placeholder="Name">
    </div>

    <div class="form-group">
        <input class="form-control mb-2 mr-sm-2" type="email" placeholder="Email">
    </div>

    <div class="form-check mb-2 mr-sm-2">
        <input class="form-check-input" type="checkbox" id="inlineFormCheck">
        <label class="form-check-label" for="inlineFormCheck">I agree</label>
    </div>

    <button type="submit" class="btn btn-primary mb-2">Submit</button>
</form>

Bootstrap 4 Stacked Form

As the name suggests, it creates a stack structure of all the form elements.

Example Code:

<form role="form">
        <div class="form-group mb-3">
                <label for="sFormInput1">Name</label>
                <input id="sFormInput1" class="form-control" type="text" placeholder="Your full name">
        </div>

        <div class="form-group mb-3">
                <label for="sFormInput2">Email</label>
                <input id="sFormInput2" class="form-control mb-2" type="email" placeholder="Your email address">
        </div>

        <div class="form-group mb-3">
                <label for="sFormInput3">Example select</label>
                <select  id="sFormInput3" class="form-control">
                        <option value="">Please select</option>
                        <option value="1">Select option 1</option>
                        <option value="2">Select option 2</option>
                        <option value="3">Select option 3</option>
                        <option value="4">Select option 4</option>
                        <option value="5">Select option 5</option>
                </select>
        </div>

        <div class="form-group mb-3">
                <label for="sFormInput4">Example textarea</label>
                <textarea id="sFormInput4" class="form-control" rows="3"></textarea>
        </div>

        <div class="form-group">
                <label for="sFormInput5">Example file input</label>
                <input id="sFormInput5" type="file" class="form-control-file">
        </div>

        <div class="form-check mb-3">
                <input id="sFormInput6" class="form-check-input" type="checkbox">
                <label for="sFormInput6" class="form-check-label">I agree</label>
        </div>

        <button class="btn btn-primary" type="submit"> Submit </button>
</form>

The Different States of Form Control

In addition to inputting values into forms with the focus state, Bootstrap provides some additional styling features for different form validation states.

  • Input Focus: Bootstrap includes a particular style for inputting data into fields. A box shadow style is applied whenever an input has focus.
  • Disabled Inputs: All the input boxes can be disabled within <fieldset> at once by using the disabled attribute on it, which will make the field gray and dim.
  • Disabled Fieldsets: Using the disabled attribute in <fieldset> will disable all controls under it, making the field gray and dimmed.
  • Validation States: Bootstrap 4 provides various ways to style input controls to implement other validation states. Some predefined CSS can be included in a form to show success, warning, and error messages.
Disabled fieldset example

Example:

<form class="form-horizontal" role="form">
    <div class="form-group mb-3">
        <label for="simpleInput">An active input</label>
        <input id="simpleInput" class="form-control" type="text" value="The focused is used">
    </div>

    <div class="form-group mb-3">
        <label for="disabledInput">Disabled input</label>
        <input id="disabledInput" class="form-control" disabled="disabled" type="text" placeholder="Input Disabled">
    </div>
        
    <fieldset disabled="disabled">
        <legend>Disabled fieldset example</legend>
        <div class="form-group mb-3">
            <label class="control-label" for="disabledTextInput">Fieldset disabled</label>
            <input id="disabledTextInput" class="form-control" type="text" placeholder="Disabled input">
        </div>
                
        <div class="form-group mb-3">
            <label class="control-label" for="disabledSelect">Disabled select menu (Fieldset disabled)</label>
            <select id="disabledSelect" class="form-control">
                <option>Disabled Selection</option>
            </select>
        </div>
    </fieldset>
</form>

Form Control Sizing

The size of form inputs can be managed using classes such as .form-control-sm and .form-control-lg.

Example:

<div class="form-group mb-3">
    <input type="text" class="form-control form-control-lg" placeholder="Large size input">
</div>

<div class="form-group mb-3">
    <input type="text" class="form-control" placeholder="Default size input">
</div>

<div class="form-group mb-3">
    <input type="text" class="form-control form-control-sm" type="text" placeholder="Small size input">
</div>


Found This Page Useful? Share It!
Get the Latest Tutorials and Updates
Join us on Telegram

Notifications

Updates are enabled for this browser.

Receive new tutorials, articles and learning resources. You can turn updates off anytime.

Test browser code

Use this code in admin to send a test notification to this browser.