Вопрос по twitter-bootstrap-3, html, html5, css – Как выровнять метку и ввод по вертикали в Bootstrap 3?

39

Как выровнять метку и ввод по вертикали в Bootstrap 3? Я хотел бы, чтобы метка и ввод на одной строке. Я играл с различными классами и пользовательским CSS, но, похоже, ничего не работает.

JSfiddle

<div class="form-group">
    <div class="row">
        <div class="col-xs-3">
            <label for="class_type"><h2><span class=" label label-primary">Class Type</span></h2></label>
        </div>
        <div class="col-xs-2">
            <select name="class_type" id="class_type" class="  form-control input-lg" style="width:200px" autocomplete="off">
                <option >Economy</option>
                <option >Premium Economy</option>
                <option >Club World</option>
                <option >First Class</option>
            </select>
        </div>
     </div>
</div>

Ваш Ответ

4   ответа
42

Бутстрап 3 документадля горизонтальных форм позвольте вам использовать.form-horizontal Класс, чтобы сделать ваши метки формы и входы выровнены по вертикали. Структура для этих форм:

<form class="form-horizontal" role="form">
  <div class="form-group">
    <label for="input1" class="col-lg-2 control-label">Label1</label>
    <div class="col-lg-10">
      <input type="text" class="form-control" id="input1" placeholder="Input1">
    </div>
  </div>
  <div class="form-group">
    <label for="input2" class="col-lg-2 control-label">Label2</label>
    <div class="col-lg-10">
      <input type="password" class="form-control" id="input2" placeholder="Input2">
    </div>
  </div>
</form>

Поэтому ваша форма должна выглядеть так:

<form class="form-horizontal" role="form">
    <div class="form-group">
        <div class="col-xs-3">
            <label for="class_type"><h2><span class=" label label-primary">Class Type</span></h2></label>
        </div>
        <div class="col-xs-2">
            <select id="class_type" class="form-control input-lg" autocomplete="off">
                <option>Economy</option>
                <option>Premium Economy</option>
                <option>Club World</option>
                <option>First Class</option>
            </select>
        </div>
    </div>
</form>
Для меня то, что работало, было добавитьform-horizontal к моему<div class="form-group"> что, вероятно, нахмурился, но это сработало для меня! Это было необходимо для меня, так как я использовалform-inline, Так что мое окончательное решение выглядело так<div class="form-inline"><div class="form-group form-horizontal"><label/><div class="col-md-5"><input/> hvaughan3
Ваш второй пример имеет тот же результат, что и мой. Я бы хотел, чтобы все было в одной строке и выровнено правильно. Вот jsfiddle для вашего примера:jsfiddle.net/fatfantasma/6xH5s, Любые другие предложения? fat fantasma
2

е центрирование с помощью<div class="form-row align-items-center"> для каждой строки формы, в соответствии сПримеры начальной загрузки.

11

<label> находится внутри<h2> тег, и теги заголовка имеютmargin устанавливается таблицей стилей по умолчанию.

Хорошо, просто изучаю этот материал. Я изменил тег h2, чтобы он настраивал CSS-поле margin-top. Спасибо, что указал мне правильное направление. Обновленная скрипкаjsfiddle.net/fatfantasma/6xH5s/1 fat fantasma
Как бы я мог удалить это поле, если это возможно? fat fantasma
25

что вы уже нашли свой ответ, но для тех, кто все еще ищет ответ:

когдавход-Л.Г. поля не совпадают, если вы не используетеФорма-группа-Л.Г. в дополнении кФорма-группа класс. Его пример в документах:

<form class="form-horizontal">
  <div class="form-group form-group-lg">
    <label class="col-sm-2 control-label" for="formGroupInputLarge">Large label</label>
    <div class="col-sm-10">
      <input class="form-control" type="text" id="formGroupInputLarge" placeholder="Large input">
    </div>
  </div>
  <div class="form-group form-group-sm">
    <label class="col-sm-2 control-label" for="formGroupInputSmall">Small label</label>
    <div class="col-sm-10">
      <input class="form-control" type="text" id="formGroupInputSmall" placeholder="Small input">
    </div>
  </div>
</form>

Похожие вопросы