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 类以制作全高的容器。
<div class="container h-100">
您还需要确保所有父母的身高也是 100%(或具有定义的高度)...
html,正文 高度:100%;
使用 align-items-center 代替 align-self-center
<div class="row d-flex align-items-center h-100 m-auto">
你也可以在这里看到变化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:轮播:在定义高度视口中垂直居中图像