我正在使用 Twitter Bootstrap 3,当我想垂直对齐两个时遇到问题div,例如“ JSFiddle 链接” :
div
<!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> <!-- Optional theme --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css"> <!-- Latest compiled and minified JavaScript --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> <div class="row"> <div class="col-xs-5"> <div style="height:5em;border:1px solid #000">Big</div> </div> <div class="col-xs-5"> <div style="height:3em;border:1px solid #F00">Small</div> </div> </div>
Bootstrap 中的网格系统使用float: left, not display:inline-block,因此该属性vertical- align不起作用。我尝试使用margin-top它来修复它,但我认为这对于响应式设计来说不是一个好的解决方案。
float: left
display:inline-block
vertical- align
margin-top
这个答案提出了一个技巧,但我强烈建议您使用 flexbox(如@Haschem 答案中所述),因为它现在在任何地方都受支持。 演示链接: - Bootstrap 3 - Bootstrap 4 alpha 6
这个答案提出了一个技巧,但我强烈建议您使用 flexbox(如@Haschem 答案中所述),因为它现在在任何地方都受支持。
演示链接: - Bootstrap 3 - Bootstrap 4 alpha 6
您仍然可以在需要时使用自定义类:
.vcenter { display: inline-block; vertical-align: middle; float: none; } <div class="row"> <div class="col-xs-5 col-md-3 col-lg-1 vcenter"> <div style="height:10em;border:1px solid #000">Big</div> </div><!-- --><div class="col-xs-5 col-md-7 col-lg-9 vcenter"> <div style="height:3em;border:1px solid #F00">Small</div> </div> </div>
引导层
inline-block如果您在代码中留出真实空间(如...</div> </div>...) ,则使用会在块之间添加额外的空间。如果列大小加起来为 12,这个额外的空间会破坏我们的网格:
inline-block
...</div> </div>...
<div class="row"> <div class="col-xs-6 col-md-4 col-lg-2 vcenter"> <div style="height:10em;border:1px solid #000">Big</div> </div> <div class="col-xs-6 col-md-8 col-lg-10 vcenter"> <div style="height:3em;border:1px solid #F00">Small</div> </div> </div>
在这里,我们在<div class="[...] col-lg-2">和之间有额外的空格<div class="[...] col- lg-10">(回车和 2 个制表符/8 个空格)。所以…
<div class="[...] col-lg-2">
<div class="[...] col- lg-10">
让我们踢掉这个额外的空间!!
<div class="row"> <div class="col-xs-6 col-md-4 col-lg-2 vcenter"> <div style="height:10em;border:1px solid #000">Big</div> </div><!-- --><div class="col-xs-6 col-md-8 col-lg-10 vcenter"> <div style="height:3em;border:1px solid #F00">Small</div> </div> </div>
注意到那些 看似 无用的评论了<!-- ... -->吗?它们很 重要 ——没有它们,<div>元素之间的空白将占用布局中的空间,破坏网格系统。
<!-- ... -->
<div>
注意:Bootply 已更新