我正在尝试在同一行中创建一个包含4个按钮的表单字段。我正在使用Bootstrap,因为我希望字段和按钮垂直对齐,所以我为它创建了一个css类vcenter
。
HTML 的
<form>
<div class="row stopWrap">
<div class="form-group col-lg-8 col-md-8 col-sm-8 col-xs-12 vcenter">
<label for="inputFirstName">First Name</label>
<input type="email" class="form-control" id="inputFirstName" placeholder="First Name">
</div>
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 text-center vcenter">
<button type="button" class="btn btn-warning" aria-label="Left Align">
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
</button>
<button type="button" class="btn btn-primary" aria-label="Left Align">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
</button>
<button type="button" class="btn btn-danger" aria-label="Left Align">
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
</button>
<button type="button" class="btn btn-success" aria-label="Left Align">
<span class="glyphicon glyphicon-align-justify" aria-hidden="true"></span>
</button>
</div>
</div>
</form>
CSS
.stopWrap{
white-space: nowrap;
}
.vcenter {
display: inline-block;
vertical-align: middle;
float: none;
}
答案 0 :(得分:1)
问题是float:none
覆盖了bootstrap float:left
。
这就是为什么它没有进入下一行。
在您的情况下,您不应该使用vcenter
。删除它并添加这样的东西来垂直对齐你的按钮:
<div>
</div>
它看起来像黑客,但不是因为你将<input type="email" />
宽度设置为100%,你显然想要在单独的行上显示标签和输入。与此类似:
<div>
<label for="inputFirstName">First Name</label>
</div>
<div>
<input type="email" class="form-control" id="inputFirstName" placeholder="First Name">
</div>
使用
后,我们的按钮块具有与输入类似的结构:
<div>
//this is the replacement for <label> above which has the same height.
</div>
<div>
//our buttons here
</div>
答案 1 :(得分:0)
为什么不将按钮放在.row-fluid
中,并将每个按钮设为.span3
?
答案 2 :(得分:0)
另一种选择是使用媒体查询来调整浮动,因为自举在col-xs-12
断点处断开(768px):
@media (max-width: 768px) {
#mybutt{float:left !important;text-align:left;}
}
这样,您可以根据需要保留.vcenter
课程,并执行其他必要的操作(例如text-align:left
)。