Html 引导:如何在列中垂直居中放置内容

Html 引导:如何在列中垂直居中放置内容,html,css,twitter-bootstrap,Html,Css,Twitter Bootstrap,我已经花了几个小时在这个问题上,并且已经阅读了无数的问题,但是提供的解决方案都不适合我,所以我现在只想发布我的具体问题: 我想构建一个包含四列的行。前三列有图片,第四列有文字描述,我想垂直居中显示(意思是顶部和底部有相等的边距,这显然不是固定的,但响应屏幕大小的变化)。代码如下: <section> <div class="container-fluid"> <div class="row"> <div c

我已经花了几个小时在这个问题上,并且已经阅读了无数的问题,但是提供的解决方案都不适合我,所以我现在只想发布我的具体问题:

我想构建一个包含四列的行。前三列有图片,第四列有文字描述,我想垂直居中显示(意思是顶部和底部有相等的边距,这显然不是固定的,但响应屏幕大小的变化)。代码如下:

<section>
    <div class="container-fluid">
        <div class="row">
            <div class="col-lg-4 col-sm-6">
                <img ...>
            </div>
            <div class="col-lg-4 col-sm-6">
                <img ...>
            </div>
            <div class="col-lg-3 col-sm-6">
                <img ...>
            </div>
            <div class="col-lg-1 col-sm-6">
                <div class="container-fluid">
                    <p>Some text that is supposed to be vertically centered within the column</p>
                </div>
            </div>
        </div>
    </div>
</section>
#outerDiv{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

应该在列中垂直居中的某些文本

它必须与特定于引导程序的类做一些事情,我在这篇文章中找到的基于CSS的解决方案中没有这样的类。在这个特定的示例中,我如何使其工作?请随意对此部件进行任何更改:

<div class="container-fluid">
    <p>Some text that is supposed to be vertically centered within the column</p>
</div>

应该在列中垂直居中的某些文本

但是,结构的其余部分应尽可能保持不变(包括col-lg-1)


非常感谢你的帮助

您可以使用flexbox。使外部
div
显示:flex
,并使用属性
对齐项目
使其内容垂直居中。代码如下:

<section>
    <div class="container-fluid">
        <div class="row">
            <div class="col-lg-4 col-sm-6">
                <img ...>
            </div>
            <div class="col-lg-4 col-sm-6">
                <img ...>
            </div>
            <div class="col-lg-3 col-sm-6">
                <img ...>
            </div>
            <div class="col-lg-1 col-sm-6">
                <div class="container-fluid">
                    <p>Some text that is supposed to be vertically centered within the column</p>
                </div>
            </div>
        </div>
    </div>
</section>
#outerDiv{
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

以下代码将在div中完全居中显示项目:

display: -webkit-flex; /* Safari */
-webkit-justify-content: space-around; /* Safari 6.1+ */
display: flex;
justify-content: space-around;
justify-content: center;

您只需将下面的代码片段添加到CSS中

就这样

.row{ display: flex; align-items: center;}
我尝试了相同的代码,也得到了输出。如果要查看,请下载文件并运行它


在Bootstrap 4中,将“align self center”(对齐自中心)类添加到列中,您希望内容垂直居中。

您从不在列中使用容器,只是为了让您知道Yay的可能副本,这在lg中有效!但是,当改变屏幕大小为md或sm时,它将防止发生断线扰乱布局。有什么办法吗?我还尝试将css应用到其他div中,但仅将其与.row一起使用(在lg中)才能达到预期效果。谢谢谢谢你的回复。不幸的是,这并没有产生所需的垂直居中(我尝试将其应用于所有的div级别,但似乎都不起作用)。谢谢,与@theliquidcarcover的答案相同,请参阅我上面的评论。:-)@Adrian我很乐意,我更新了我的答案,您应该添加,
flex-wrap:wrap。如果有帮助,请检查我的答案是否正确。哇,这成功了!我不敢相信,其他问题中都没有这一点-D谢谢!!也许,对于未来的读者,您可以在原始回复中添加css属性应应用于.row div。