如何在Bootstrap表单中居中复选框与对应标签?
解决Bootstrap 3.3.7中复选框与标签的居中问题
我来帮你搞定这个居中的难题~ 你的代码里主要是布局结构没符合Bootstrap栅格的规范,导致居中效果没生效,我给你调整两个方案,你可以根据需求选:
方案一:全屏宽度居中(最简单直接)
这个方案让复选框和标签在整个页面宽度内水平居中,代码调整如下:
<!-- 保留你的Bootstrap和jQuery引入 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> <div class="hr-sect col-xs-12">Home Address</div> <div class="form-group required"> <!-- 添加row包裹列,这是Bootstrap栅格的必需结构 --> <div class="row"> <!-- 用col-xs-12占满宽度,text-center让内部内容居中 --> <div class="col-xs-12 text-center"> <div class="checkbox"> <input type="checkbox" name="chkIsSameHomeAddress" id="chkIsSameHomeAddress" class="AddressCheckBoxShowGroup checkbox" value="false"> <label for="chkIsSameHomeAddress" class="control-label">Address same as above</label> </div> </div> </div> </div>
关键改动说明:
- 给
form-group内部加了row:Bootstrap的栅格列必须放在row里,否则会有默认边距导致布局错乱; - 替换
center-block为text-center:center-block是让块元素自身居中,而text-center是让内部的行内/行内块元素(比如复选框和标签)水平居中,更适合你的场景; - 把复选框和标签放进同一个
checkbox容器:符合Bootstrap表单组件的语义,同时让它们自然在同一行显示,避免拆分列导致的分散。
方案二:限制宽度后居中(适合需要控制区域宽度的情况)
如果你不想让复选框区域占满整个宽度,可以用栅格偏移来实现:
<div class="form-group required"> <div class="row"> <!-- 用col-xs-6占一半宽度,col-xs-offset-3让它左右各偏移3列,实现整体居中 --> <div class="col-xs-6 col-xs-offset-3 text-center"> <div class="checkbox"> <input type="checkbox" name="chkIsSameHomeAddress" id="chkIsSameHomeAddress" class="AddressCheckBoxShowGroup checkbox" value="false"> <label for="chkIsSameHomeAddress" class="control-label">Address same as above</label> </div> </div> </div> </div>
这个方案会让复选框区域只占页面一半宽度,同时保持居中,适合需要更紧凑布局的场景。
内容的提问来源于stack exchange,提问作者SPKan
相关产品推荐
相关产品推荐

