Вёрстка форм — это одна из сильных сторон Bootstrap. Фреймворк не только помогает расположить элементы форм в нужном порядке, но и обеспечивает изменение вида элементов и их взаимодействие с пользователем.
Давайте рассмотрим типовую форму для входа на сайт и на её примере разберём, как работает Boostrap для форм. В примере 1 показано создание базовой формы пока без добавления дополнительных классов.
Пример 1. Форма для входа на сайт
<form>
 <fieldset>
  <legend>Вход на сайт</legend>
  <p><label for="inputLogin">Логин</label></p>
  <p><input id="inputLogin" placeholder="Введите логин"></p>
  <p> <label for="inputPassword">Пароль</label></p>
  <p><input type="password" id="inputPassword" placeholder="Введите пароль"></p>
  <p><label><input type="checkbox"> Запомнить меня</label></p>
  <p><button type="submit">Войти</button></p>
 </fieldset>
</form>
Форма выглядит скучно (рис. 1), поскольку какое-либо оформление ещё не включено. 

Рис. 1. Вид исходной формы
Для начала добавим к текстовому полю и полю с паролем класс form-control, это изменит стиль текстовых полей. Далее нужно сгруппировать заголовок и поле за ним, чтобы расстояние между ними было меньше обычного. Добавим <label> и <input> внутрь элемента <div> с классом form-group. Кроме того изменим чекбокс с текстом, добавив их внутрь <div> с классом checkbox и зададим другой вид кнопки. В примере 2 показаны изменения формы.
Пример 2. Применение классов
<form>
 <fieldset>
  <legend>Вход на сайт</legend>
  <div class="form-group">
   <label for="inputLogin">Логин</label>
   <input id="inputLogin" placeholder="Введите логин" class="form-control">
  </div>
  <div class="form-group">
   <label for="inputPassword">Пароль</label>
   <input type="password" id="inputPassword" placeholder="Введите пароль" class="form-control">
  </div>
  <div class="checkbox">
   <label><input type="checkbox"> Запомнить меня</label>
  </div>
  <button type="submit" class="btn btn-default">Войти</button>
 </fieldset>
</form>
В результате форма выглядит иначе (рис. 2).

Рис. 2. Вид формы
Однострочная форма
Чтобы сделать форму компактнее, к элементу <form> достаточно добавить класс form-inline. Элементы формы после этого вытянутся в одну строку (рис. 3). Также из кода следует убрать <fieldset> и <legend>.
 
Рис. 3. Однострочная форма
В примере 3 показано создание такой формы.
Пример 3. Однострочная форма
<form class="form-inline">
 <div class="form-group">
  <label for="inputLogin">Логин</label>
  <input id="inputLogin" placeholder="Введите логин" class="form-control">
 </div>
 <div class="form-group">
  <label for="inputPassword">Пароль</label>
  <input type="password" id="inputPassword" placeholder="Введите пароль" class="form-control">
 </div>
 <div class="checkbox">
  <label><input type="checkbox"> Запомнить меня</label>
 </div>
 <button type="submit" class="btn btn-default">Войти</button>
</form>
При уменьшении размера окна форма перестанет быть однострочной и примет исходный вид показанный на рис. 2.
Горизонтальная форма
Такой вид формы часто встречается на сайтах, когда поле и метка к нему располагаются на одной строке (рис. 4). 

Рис. 4. Вид горизонтальной формы
Для создания формы такого вида требуется проделать несколько действий:
  - к <form> добавить класс form-horizontal; 
- к <label> добавить класс control-label, тогда метка поля будет выравниваться по правому краю и по центральной горизонтальной оси поля; 
- обернуть <label> и <input>  в <div>  с классом form-group; 
- использовать модульную сетку.
Мы уже имели дело с 12-колоночной модульной сеткой, применим эти навыки для управления дизайном формы. Метка будет занимать две колонки, а ширина самого поля — оставшиеся десять колонок. Вместо добавления дополнительного <div> добавим класс col-sm-2 непосредственно к <label>, так немного сократится число элементов кода. Что касается чекбокса и кнопки, то добавим к ним класс col-sm-offset-2, он сдвинет поля прямо под текстовое поле (пример 4). 
Пример 4. Горизонтальная форма
<form class="form-horizontal">
 <div class="form-group">
  <label for="inputLogin" class="col-sm-2 control-label">Логин</label>
  <div class="col-sm-10">
   <input id="inputLogin" placeholder="Введите логин" class="form-control">
  </div>
 </div>
 <div class="form-group">
  <label for="inputPassword" class="col-sm-2 control-label">Пароль</label>
  <div class="col-sm-10">
   <input type="password" id="inputPassword" placeholder="Введите пароль" class="form-control">
  </div>
 </div>
 <div class="form-group">
  <div class="col-sm-10 col-sm-offset-2 checkbox">
   <label><input type="checkbox"> Запомнить меня</label>
  </div>
 </div>
 <div class="form-group">
  <div class="col-sm-10 col-sm-offset-2">
   <button type="submit" class="btn btn-default">Войти</button>
  </div>
 </div>
</form>
В классах мы использовали префикс sm, чтобы на смартфонах форма выглядела традиционно (рис. 2), а на больших экранах — как горизонтальная.