Bootstrap Forms

In Bootstrap, there are three types of form layouts:

  • Vertical form (this is default)
  • Horizontal form
  • Inline form

Bootstrap Form Rules

There are three standard rules for these 3 form layouts:

  • Always use <form role=”form”> (helps improve accessibility for people using screen readers)
  • Wrap labels and form controls in <div class=”form-group”> (needed for optimum spacing)
  • Add class .form-control to all textual <input>, <textarea>, and <select> elements

1) Bootstrap Vertical Form (Default)

<!DOCTYPE html>  

<html lang="en">  

  <head>  

     <title>Bootstrap example</title>  

     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/>  

  </head>  

  <body>  

  

<div class="container">  

  <h1>Vertical Form Example</h1>  

  

<form style="width:300px">  

  <div class="form-group">  

    <label for="exampleInputEmail1">Email address</label>  

    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">  

  </div>  

  <div class="form-group">  

    <label for="exampleInputPassword1">Password</label>  

    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">  

  </div>  

    

  <button type="submit" class="btn btn-default">Login</button>  

</form>  

  

</div>  

  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>  

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>  

  </body>  

</html>

2) Bootstrap Inline Form

In Bootstrap Inline forms, all elements are inline, left-aligned, and the labels are alongside.

This example is only applied to forms within viewports that are at least 768px wide!

Example:

<!DOCTYPE html>  

<html lang="en">  

<head>  

  <title>Bootstrap Example</title>  

  <meta charset="utf-8">  

  <meta name="viewport" content="width=device-width, initial-scale=1">  

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">  

    

</head>  

<body>  

  

<div class="container">  

  <h2>Inline form Example</h2>  

  <form class="form-inline" role="form">  

    <form style="width:300px">  

  <div class="form-group">  

    <label for="exampleInputEmail1">Email address</label>  

    <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Email">  

  </div>  

  <div class="form-group">  

    <label for="exampleInputPassword1">Password</label>  

    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">  

  </div>  

    

  <button type="submit" class="btn btn-default">Login</button>  

</form>  

  

</div>  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>  

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  

  

</body>  

</html> 

3) Bootstrap Horizontal Form

You have to add some additional rules if you want to create a horizontal form.

Additional rules for a horizontal form:

  • Add class .form-horizontal to the <form> element
  • Add class .control-label to all <label> elements

Example:

   

<!DOCTYPE html>  

<html lang="en">  

<head>  

  <title>Bootstrap Example</title>  

  <meta charset="utf-8">  

  <meta name="viewport" content="width=device-width, initial-scale=1">  

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">  

    

</head>  

<body>  

  

<div class="container">  

  <h2>Horizontal form Example</h2>  

  <form class="form-horizontal" role="form">  

    <form style="width:300px">  

  <div class="form-group">  

      <label class="control-label col-sm-2" for="email">Email:</label>  

      <div class="col-sm-10">  

        <input type="email" class="form-control" id="email" placeholder="Enter email">  

      </div>  

    </div>  

    <div class="form-group">  

      <label class="control-label col-sm-2" for="pwd">Password:</label>  

      <div class="col-sm-10">            

        <input type="password" class="form-control" id="pwd" placeholder="Enter password">  

      </div>  

    </div>  

    

  <div class="form-group">          

      <div class="col-sm-offset-2 col-sm-10">  

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

      </div>  

    </div>  

  </form>  

</div>  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>  

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>  

  

</body>  

</html> 

Bootstrap 4 Forms

In Bootstrap4, form controls automatically receive some global styling with Bootstrap.

All textual <input>, <textarea>, and <select> elements with class .form-control have a width of 100%.

Stacked (full-width) form:

Bootstrap 4 provides full width stacked forms.

Example:

Let’s take an example to create a stacked form with two input fields, one checkbox, and a submit button.

<!DOCTYPE html>  

<html lang="en">  

<head>  

  <title>Bootstrap Example</title>  

  <meta charset="utf-8">  

  <meta name="viewport" content="width=device-width, initial-scale=1">  

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">  

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>  

  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.6/umd/popper.min.js"></script>  

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script>  

</head>  

<body>  

  

<div class="container">  

  <h2>Stacked form</h2>  

  <form>  

    <div class="form-group">  

      <label for="email">Email:</label>  

      <input type="email" class="form-control" id="email" placeholder="Enter email">  

    </div>  

    <div class="form-group">  

      <label for="pwd">Password:</label>  

      <input type="password" class="form-control" id="pwd" placeholder="Enter password">  

    </div>  

    <div class="form-check">  

      <label class="form-check-label">  

        <input class="form-check-input" type="checkbox"> Remember me  

      </label>  

    </div>  

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

  </form>  

</div>  

  

</body>  

</html> 

    Comments

    Leave a Reply

    Your email address will not be published. Required fields are marked *