如何将bootstrap形式的输入与input-group-addons对齐?

Pat*_*ryk 26 html css alignment twitter-bootstrap

我有一个非常简单的Bootstrap 3表单,当我不使用input-group-addons 时,我可以轻松(自动)对齐.

在我的表单中使用它们后,它是不可能对齐的(由于添加了插件,带插件的线条更宽)

<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>
Run Code Online (Sandbox Code Playgroud)

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

dan*_*vek 33

输入组的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>
Run Code Online (Sandbox Code Playgroud)

更新小提琴


Fel*_*lix 17

这是因为.input-group有默认值

padding-right: 0;
padding-left: 0;
Run Code Online (Sandbox Code Playgroud)

所以你div会伸展到全宽,.col-sm-4默认样式为:

padding-right: 15px;
padding-left: 15px;
Run Code Online (Sandbox Code Playgroud)

因此,为了使其按预期工作,您可以添加以下样式:

.input-group[class*="col-"] {
    padding-right: 15px;
    padding-left: 15px;
}
Run Code Online (Sandbox Code Playgroud)

更新小提琴