Twitter bootstrap flex 垂直中心不能使用 align-self-center

Posted

技术标签:

【中文标题】Twitter bootstrap flex 垂直中心不能使用 align-self-center【英文标题】:Twitter bootstrap flex vertical center does not work using align-self-center 【发布时间】:2021-08-20 18:10:35 【问题描述】:

我正在使用 twitter bootstrap 4.4.1 和 flex 进行布局。 我想要实现的是在顶部有一个导航栏,在屏幕中间有一些内容。

有点像这样:

我正在使用以下代码(这里也是 jsfiddle jsfiddle):

<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/js/bootstrap.min.js"></script>

    <div class="container">
        <nav class="navbar navbar-light bg-light">
            <div class="col-md-12 d-flex align-items-start justify-content-end">
            <button class="btn btn-warning btn-large">Large</button>
            </div>
        </nav>

        <div class="row d-flex align-self-center">
            <div class="col-12 mx-auto">
                <div class="jumbotron text-center">
                    Some text
                </div>
            </div>
        </div>
    </div>

我尝试了很多东西,但就是无法让文本块在屏幕上居中。

我是 layout/grid/flex 系统的新手,但事实证明这非常困难。 非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

    我添加了 h-100 类以制作全高的容器。 &lt;div class="container h-100"&gt;

    您还需要确保所有父母的身高也是 100%(或具有定义的高度)...

    html,正文 高度:100%;

    使用 align-items-center 代替 align-self-center &lt;div class="row d-flex align-items-center h-100 m-auto"&gt;

你也可以在这里看到变化JSFiddle Code

html, body 
  height: 100%;
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container-fluid h-100">
        <nav class="navbar navbar-light bg-light">
            <div class="col-md-12 d-flex align-items-start justify-content-end">
            <button class="btn btn-warning btn-large">Large</button>
            </div>
        </nav>

        <div class="row d-flex align-items-center h-100 m-auto">
            <div class="col-12 mx-auto">
                <div class="jumbotron text-center">
                    Some text
                </div>
            </div>
        </div>
    </div>

【讨论】:

以上是关于Twitter bootstrap flex 垂直中心不能使用 align-self-center的主要内容,如果未能解决你的问题,请参考以下文章

如何垂直居中导航栏元素(Twitter Bootstrap)?

只是不能让 flex 使用 bootstrap 或 vanilla flexbox 垂直居中元素

如何在有效的 Twitter Bootstrap 中垂直居中内容?

Twitter Bootstrap:轮播:在定义高度视口中垂直居中图像

Twitter bootstrap 3 - 在一行中垂直对齐列[中]

如何使用 Twitter Bootstrap 在 TD 中垂直对齐按钮、文本和输入文本字段