3.5.3 横向表单
横向表单与内联表单的使用方式不太一样,其不能在form元素上简单应用一个.form-horizontal样式,这是因为.form-horizontal样式本身没有做什么特殊的设置,只简单设置了一下相关的padding和margin值。源码如下:
- // 源码1959行
- .form-horizontal .control-label,
- .form-horizontal .radio,
- .form-horizontal .checkbox,
- .form-horizontal .radio-inline,
- .form-horizontal .checkbox-inline { /* 简单设置了一下padding和margin */
- padding-top: 7px;
- margin-top: 0;
- margin-bottom: 0;
- }
- .form-horizontal .radio,.form-horizontal .checkbox { min-height: 27px;
- /* 设置最小高度 */}
- .form-horizontal .form-group { /* 简单设置了一下margin */
- margin-right: -15px; margin-left: -15px;
- }
- .form-horizontal .form-control-static { padding-top: 7px; }
- @media (min-width: 768px) {
- .form-horizontal .control-label { text-align: right;
- /* 大屏幕下,label可以居右显示 */ }
- }
运行效果如图3-22所示。
图3-22 横向表单运行效果
所以,要实现横向表单,不仅要应用上述样式,还要使用Bootstrap预置的栅格类,以便将label和控件水平并排布局。由于.form-horizontal样式改变了.form-group的行为,将其表现得像栅格系统中的行(row)一样,因此就无需再使用.row样式了。示例如下:
- <form class="form-horizontal" role="form">
- <div class="form-group">
- <label for="account" class="col-sm-2 control-label">用户名</label>
- <div class="col-sm-10">
- <input type="email" class="form-control" id=" account "
- placeholder="请输入你的用户名">
- </div>
- </div>
- <div class="form-group">
- <label for=" password " class="col-sm-2 control-label">密码</label>
- <div class="col-sm-10">
- <input type="password" class="form-control" id="password"
- placeholder="请输入你的密码">
- </div>
- </div>
- <div class="form-group">
- <div class="col-sm-offset-2 col-sm-10">
- <div class="checkbox"><label><input type="checkbox">记住密码</
- label></div>
- </div>
- </div>
- <div class="form-group">
- <div class="col-sm-offset-2 col-sm-10">
- <button type="submit" class="btn btn-default">登录</button>
- </div>
- </div>
- </form>