Bootstrap网格中的垂直对齐

问题描述 投票:2回答:3

这似乎是一个简单的问题,但我根本找不到答案。

这个小提琴应该相当简单:http://fiddle.jshell.net/52VtD/4040/

<div class="panel panel-default entete" >
    <div class="row">
        <div class="col-md-6">
            <div class="title">
               to be centered vertically
            </div>
        </div>
        <div class="col-md-2">
            <p>Text</p>
            <p>Text</p>
            <p>Text</p>
        </div>
        <div class="col-md-2">
            Text
        </div>
        <div class="col-md-2">
            Text
        </div>
    </div>
</div>

我试图垂直对齐第一列的内容相对于其他列。

如果调整窗口大小(并且右侧没有列),则第一列应该与其内容一样高(不能使用固定高度)。

css twitter-bootstrap vertical-alignment
3个回答
1
投票

看看这个http://fiddle.jshell.net/52VtD/4043/

<div class="panel panel-default entete" >
    <div class="row" style="display:table">
        <div class="col-md-6" >
            <div class="title" style="display:cell;vertical-align:middle">
               to be centered vertically
            </div>
        </div>
        <div class="col-md-2">
            <p>Text</p>
            <p>Text</p>
            <p>Text</p>
        </div>
        <div class="col-md-2">
            Text
        </div>
        <div class="col-md-2">
            Text
        </div>
    </div>
</div>

1
投票

使用Bootstrap 4 Grid执行此操作的正确方法是使用.row元素上的align-items-...类之一,或.col元素上的align-self-...

在OP的原始请求的情况下,最好的实现将是

<div class="col-md-6 align-self-center">
    <div class="title">
       to be centered vertically
    </div>
</div>

例如,如果您希望将所有.col元素设置为垂直对齐,则可以在.row元素上设置align-items-end,如下所示:

<div class="row align-items-end">

资料来源:https://getbootstrap.com/docs/4.0/layout/grid/#vertical-alignment


0
投票

http://fiddle.jshell.net/8uzn7fou/2/

HTML:

<div class="panel panel-default entete" >
    <div class="row" >
        <div class="col-md-6 title_div" >
            <div class="title" >
                to be centered vertically<br/> to be centered vertically
            </div>
        </div>
        <div class="col-md-2">
            <p>Text</p>
            <p>Text</p>
            <p>Text</p>
        </div>
        <div class="col-md-2">
            Text 2
        </div>
        <div class="col-md-2">
            Text 3
        </div>
    </div>
</div>

CSS:

.title_div{
    display: table;

}
.title{
    height:100%; display: table-cell!important;
    vertical-align: middle;
}

JQ:

function setHeight()
{
    var max=0;
    $('.entete .col-md-2').each(function(){
        var h=$(this).height();
        if(h>max) max=h;
    })

    $('.title_div').height(max);
}

setHeight()

注意:在函数中,应添加setHeight()以检查窗口的宽度,以便不对较小的屏幕执行

© www.soinside.com 2019 - 2024. All rights reserved.