Css 垂直对齐引导3中两个堆叠选择之间的一组按钮
我正在使用Bootstrap3模式实现角色分配权限屏幕。在全屏模式下,选择的内容不会堆叠在一起,而是对齐在一边。如您所见,现在按钮粘贴到顶部,但我想将它们放在modal中心的一列中: 代码很简单,详细信息如下:Css 垂直对齐引导3中两个堆叠选择之间的一组按钮,css,twitter-bootstrap-3,vertical-alignment,Css,Twitter Bootstrap 3,Vertical Alignment,我正在使用Bootstrap3模式实现角色分配权限屏幕。在全屏模式下,选择的内容不会堆叠在一起,而是对齐在一边。如您所见,现在按钮粘贴到顶部,但我想将它们放在modal中心的一列中: 代码很简单,详细信息如下: <div class="modal-header"> <h3 class="modal-title">Role permissions</h3> </div> <div class="modal-body"> <
<div class="modal-header">
<h3 class="modal-title">Role permissions</h3>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-5 form-group">
<label for="availablePermission">
Available permissions
</label>
<select id="availablePermission" class="form-control" size="14">
<optgroup label="General">
<option value="0">Change password</option>
...
</optgroup>
</select>
</div>
<div class="col-md-2">
<button class="btn btn-primary">
<i class="fa fa-fw fa-angle-right"></i>
</button>
<button class="btn btn-primary">
<i class="fa fa-fw fa-angle-left"></i>
</button>
</div>
<div class="col-md-5 form-group">
<label for="existingPermission">
Assigned permissions
</label>
<select id="existingPermission" class="form-control" size="14">
<optgroup label="General">
<option value="1">View users</option>
...
</optgroup>
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-primary">OK</button>
<button class="btn btn-warning">Cancel</button>
</div>
角色权限
可用权限
更改密码
...
分配的权限
查看用户
...
好啊
取消
我试过使用flexbox作为中间列,带有
display:flex
和flex direction:column
,但按钮没有移动任何像素<代码>显示:表格单元格和垂直对齐:中间
也不起作用。是否可以在不使用硬编码尺寸的情况下对其进行漂亮的居中调整?由于您可能知道两个按钮的高度,因此可以执行以下操作:
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
margin: auto;
width: THEWIDTHpx;
height: THEHEIGHTpx;
您还需要放置位置:relative代码>到行。这将在框的中间用2个按钮对盒子进行定位。
如果您使用浮点数将div放在彼此相邻的位置,请确保该行有一个clearfix。设法使其与flexbox一起工作,但失去了一点自适应性:尝试更改宽度-选择现在不会垂直堆叠:(添加@media
查询(类似于Bootstrap的*-md
)将解决此问题
@media (min-width: 992px) {
.flex-row {
display: flex;
}
}
.flex-col {
display: flex;
flex-wrap: wrap;
align-items: center;
align-content: center;
justify-content: center;
}
这篇文章有什么价值吗?我知道我可以为按钮包装指定固定高度,并使用负边距,但为什么flexbox不起作用?我认为这是一种进行垂直对齐的现代方法…谢谢你的回复,Zenorbi!从来没有想过浮动。我看到bootstrap使用浮动。有什么问题吗?如果你不清除固定行,该行的高度将为0,因为浮动不参与容器布局。因为它的高度为0,相对于该行的绝对定位将产生不需要的结果。但实际上我不知道按钮块的高度。稍后可能会有三个或四个。我可以强制第二列的高度与第三列和第一列的高度?也许flexbox会起作用?我注意到第二列只包装内容,而不跨越整个可用高度。在这种情况下,这将有点困难。在IE9+中,有一种方法可以做到这一点,使用top:50%;left:50%;transform:translateX(-50%)translateY(-50%);没有宽度、高度、右边、底部和边距,但是如果你需要IE8,你需要内联块破解:非常感谢你的无价努力,Aiwan,但我已经设法使它与flexbox一起工作了。