Подтвердить что ты не робот

Как выровнять входные данные в форме бутстрапа с помощью входных групп-аддонов?

У меня очень простая форма с Bootstrap 3, которую я могу легко (автоматически) выровнять, когда я не использую input-group-addon s.

После того, как я использую их в своей форме, его невозможно выровнять (линия с аддонами шире из-за добавления аддонов)

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

    <div class="form-group">
      <label for="product_name" class="col-sm-2 control-label">Product name</label>
      <div class="col-sm-4">
        <input type="text" class="form-control" id="product_name" placeholder="Product name">
      </div>
    </div>

    <div class="form-group">
      <label for="product_price" class="col-sm-2 control-label">Price</label>
      <div class="col-sm-4 input-group">
        <span class="input-group-addon">$</span>
        <input type="text" class="form-control bfh-number" id="product_price" placeholder="Price" data-min="0" data-max="9999999">
        <span class="input-group-addon">.00</span>
      </div>
    </div>

    <div class="form-group">
      <label for="product_description" class="col-sm-2 control-label">Description</label>
      <div class="col-sm-6">
        <textarea class="form-control" id="product_description" placeholder="Description" rows="5"></textarea>
      </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>

JsFiddle: http://jsfiddle.net/Yzxy3/

4b9b3361

Ответ 1

Документация Bootstrap для групп ввода говорит:

Не смешивать группу ввода с другими компонентами. (см. http://getbootstrap.com/components/#input-groups)

Не смешивайте группы форм или классы столбцов сетки непосредственно с группами ввода. Вместо этого вставьте группу ввода внутри группы форм или элемента, связанного с сеткой.

Таким образом, вы не можете смешивать "col-sm-4" с "input-group" в том же классе. Вы должны создать 2 div-класса, первый с "col-sm-4", а другой с "input-group"

<div class="col-sm-4">
  <div class="input-group">
    <span class="input-group-addon">$</span>
    <input type="text" class="form-control bfh-number" id="product_price" placeholder="Price" data-min="0" data-max="9999999">
    <span class="input-group-addon">.00</span>
  </div>
</div>

Обновлено Fiddle

Ответ 2

Это потому, что .input-group имеет значение по умолчанию

padding-right: 0;
padding-left: 0;

поэтому ваш div будет растягиваться до полной ширины, где в качестве .col-sm-4 используются стили по умолчанию:

padding-right: 15px;
padding-left: 15px;

Итак, чтобы он работал так, как ожидалось, вы можете добавить этот стиль:

.input-group[class*="col-"] {
    padding-right: 15px;
    padding-left: 15px;
}

Обновлено Fiddle

Ответ 3

Я считаю, что мне нужно включить: float: left. Итак, css:

.input-group[class*="col-"] {
    float: left;
    padding-right: 15px;
    padding-left: 15px;
}

Если нет, мои строки с несколькими столбцами ломались, когда я обновлялся с версии от версии 3.2 до версии 3.0.

- ф

Ответ 4

.input-group [class * = "col-" ] не полезна, если вы используете

<fieldset>

Вот решение!

.makeHorizontal{  
float:left;
padding-left:20px;
}