Bootstrap 4垂直中心 - 等高卡

时间:2017-03-07 14:26:11

标签: css css3 flexbox bootstrap-4 twitter-bootstrap-4

我正在使用Bootstrap 4 alpha 6,并尝试使用flexbox垂直居中等高卡的内容。我已经使用了h-100 util类来使卡与列完全相同..

问题在于我希望每张卡的内容在中间对齐(垂直居中)。我尝试使用行中的.align-items-center类,它可以使卡片居中,但随后卡片的高度不再相等......

enter image description here

HTML

<div class="container">
    <div class="row align-items-center bg-faded">
        <div class="col-md-2">
            <div class="card card-block h-100">
                I have a lot of content that wraps on multiple lines..
            </div>
        </div>
        <div class="col-md-6">
            <div class="card card-block h-100">
               I have a line of content.<br>
               And another line here..
            </div>
        </div>
        <div class="col-md-4">
            <div class="card card-block h-100">
                I have a little bit.
            </div>
        </div>
    </div>
</div>

Demo of problem

2 个答案:

答案 0 :(得分:6)

这是一个更简单的解决方案:

仅使用justify-content-center实用程序类,因为.card已经flex-direction: column属性

&#13;
&#13;
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
    <code>normal .row with .card inside .col-*</code>
    <h6>Problem is that card content is not centered</h6>
    <div class="row bg-faded">
        <div class="col-md-2">
            <div class="card card-block h-100 justify-content-center align-items-center">
                I have a lot of content that wraps on multiple lines..
            </div>
        </div>
        <div class="col-md-6">
            <div class="card card-block h-100 justify-content-center align-items-center">
               I have a line of content.<br>
               And another line here..
            </div>
        </div>
        <div class="col-md-4">
            <div class="card card-block h-100 justify-content-center align-items-center">
                I have a little bit.
            </div>
        </div>
    </div>
</div>
<hr>
<div class="container">
    <code>.align-items-center.row with .card inside .col-</code>
    <h6>Problem is that cards are no longer full height</h6>
   <div class="row bg-faded">
        <div class="col-md-2">
            <div class="card card-block h-100 justify-content-center">
                I have a lot of content that wraps on multiple lines..
            </div>
        </div>
        <div class="col-md-6">
            <div class="card card-block h-100 justify-content-center">
               I have a line of content.<br>
               And another line here..
            </div>
        </div>
        <div class="col-md-4">
            <div class="card card-block h-100 justify-content-center">
                I have a little bit.
            </div>
        </div>
    </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我发现解决中心问题的一种方法是使用flex-column实用程序类。由于每张卡片均为display: flex,因此flex-column可用于设置flex-direction: column。然后,justify-content-center垂直对齐内容......

<div class="container">
    <div class="row">
        <div class="col-md-2">
            <div class="card card-block h-100 flex-column justify-content-center">
                I have a lot of content that wraps on multiple lines..
            </div>
        </div>
        <div class="col-md-6">
            <div class="card card-block h-100 flex-column justify-content-center">
               I have a line of content.<br>
               And another line here..
            </div>
        </div>
        <div class="col-md-4">
            <div class="card card-block h-100 flex-column justify-content-center">
                I have a little bit.
            </div>
        </div>
    </div>
</div>

Demo