bootstrap表单元素未正确对齐

时间:2015-11-07 22:04:56

标签: html css twitter-bootstrap

我正在尝试使用bootstrap对齐表单输入元素,但没有太多运气。我尝试过拉左手。有没有办法使用纯引导程序,而不必添加狡猾的一次性CSS?

<div class="modal-body">
    <form class="form-horizontal" role="form">
        <div class="row">
            <div class="form-group">
                <label class="control-label col-xs-2">Title:</label>
                <div class="col-xs-10">
                    <input  type="text" class="form-control" data-bind="value: title" />
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <label class="control-label col-xs-2">Start:</label>
                <div class="input-group input-group-sm col-xs-3">
                    <input type="text" placeholder="mm/dd/yy" data-provide="datepicker" data-bind="value:date" id="Date" />
                    <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
                </div>
            </div>
        </div>
    </form>
</div>

bootstrap form

2 个答案:

答案 0 :(得分:2)

首先,您在第二个表单组中缺少class="form-control"

其次,你将列与输入组混合在一起,这不是引导方式。

  

请勿将输入组与其他组件混合使用。   (见:http://getbootstrap.com/components/#input-groups

     

不要将表单组或网格列类直接与输入混合使用   组。而是将输入组嵌套在表单组或内部   与网格相关的元素。“

正确的HTML结构:

<div class="modal-body">
    <form class="form-horizontal" role="form">
        <div class="row">
            <div class="form-group">
                <label class="control-label col-xs-2">Title:</label>
                <div class="col-xs-10">
                    <input  type="text" class="form-control" data-bind="value: title" />
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <label class="control-label col-xs-2">Start:</label>
                <div class="col-xs-4">
                   <div class="input-group">
                      <input  type="text" class="form-control" data-bind="value: title" />
                      <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
                </div>
               </div>
            </div>
        </div>
   </form>
</div>

修正了演示CODEPEN

答案 1 :(得分:2)

如上所述,您的结构未使用正确的组件。您不应将列类与input-groupsdocs)混合使用,也不应在rows类中使用horizontal form。请参阅Docs

  

使用Bootstrap的预定义网格类来对齐标签和组   通过将.form-horizo​​ntal添加到水平布局中来控制表单   形式(不一定是)。这样做会改变   .form-groups表现为网格行,因此不需要.row。

工作示例代码段。

<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" />
<button type="button" class="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4>Some Form</h4>

      </div>
      <div class="modal-body">
        <form class="form-horizontal">
          <div class="form-group">
            <label class="control-label col-xs-3">Title:</label>
            <div class="col-xs-9">
              <input type="text" class="form-control" data-bind="value: title" />
            </div>
          </div>
          <div class="form-group">
            <label class="control-label col-xs-3">Start:</label>
            <div class="col-xs-9">
              <div class="input-group">
                <input type="text" class="form-control" placeholder="mm/dd/yy" data-provide="datepicker" data-bind="value:date" id="Date" /> <span class="input-group-addon"><i class="fa fa-calendar"></i></span>

              </div>
            </div>
          </div>
        </form>
      </div>
    </div>
  </div>
</div>