3.5.3 横向表单

横向表单与内联表单的使用方式不太一样,其不能在form元素上简单应用一个.form-horizontal样式,这是因为.form-horizontal样式本身没有做什么特殊的设置,只简单设置了一下相关的padding和margin值。源码如下:

  1. // 源码1959行
  2. .form-horizontal .control-label,
  3. .form-horizontal .radio,
  4. .form-horizontal .checkbox,
  5. .form-horizontal .radio-inline,
  6. .form-horizontal .checkbox-inline { /* 简单设置了一下padding和margin */
  7. padding-top: 7px;
  8. margin-top: 0;
  9. margin-bottom: 0;
  10. }
  11. .form-horizontal .radio,.form-horizontal .checkbox { min-height: 27px;
  12. /* 设置最小高度 */}
  13. .form-horizontal .form-group { /* 简单设置了一下margin */
  14. margin-right: -15px; margin-left: -15px;
  15. }
  16. .form-horizontal .form-control-static { padding-top: 7px; }
  17. @media (min-width: 768px) {
  18. .form-horizontal .control-label { text-align: right;
  19. /* 大屏幕下,label可以居右显示 */ }
  20. }

运行效果如图3-22所示。

3.5.3 横向表单 - 图1 图3-22 横向表单运行效果

所以,要实现横向表单,不仅要应用上述样式,还要使用Bootstrap预置的栅格类,以便将label和控件水平并排布局。由于.form-horizontal样式改变了.form-group的行为,将其表现得像栅格系统中的行(row)一样,因此就无需再使用.row样式了。示例如下:

  1. <form class="form-horizontal" role="form">
  2. <div class="form-group">
  3. <label for="account" class="col-sm-2 control-label">用户名</label>
  4. <div class="col-sm-10">
  5. <input type="email" class="form-control" id=" account "
  6. placeholder="请输入你的用户名">
  7. </div>
  8. </div>
  9. <div class="form-group">
  10. <label for=" password " class="col-sm-2 control-label">密码</label>
  11. <div class="col-sm-10">
  12. <input type="password" class="form-control" id="password"
  13. placeholder="请输入你的密码">
  14. </div>
  15. </div>
  16. <div class="form-group">
  17. <div class="col-sm-offset-2 col-sm-10">
  18. <div class="checkbox"><label><input type="checkbox">记住密码</
  19. label></div>
  20. </div>
  21. </div>
  22. <div class="form-group">
  23. <div class="col-sm-offset-2 col-sm-10">
  24. <button type="submit" class="btn btn-default">登录</button>
  25. </div>
  26. </div>
  27. </form>