如何垂直对齐 Bootstrap 4 中的项目?
How to vertically align item in Bootstrap 4?
我正在尝试垂直对齐列内的文本。如果我在父级(列)中使用 my-auto
,那么它会垂直对齐文本,但它会将所有内容拉到中心,我需要保持背景。背景颜色当前位于列上。
当我删除 my-auto
时,完整的橙色背景 returns,但文本位于顶部。
我试过创建一个内部行>列结构来解释它,但它不起作用。有什么想法吗?
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row no-gutters">
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-4 col-xl-4 my-auto" style="background-color: #f04e23;">
<h1 class="display-4 text-center">2018 Speakers</h1>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
</div>
</div>
不使用边距,而是通过添加 .d-flex
class 将列的显示设置为弹性,然后使用 .align-items-center
class 使文本垂直居中。您还可以添加 .justify-content-center
使其水平居中:
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row no-gutters">
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-4 col-xl-4 d-flex align-items-center justify-content-center" style="background-color: #f04e23;">
<h1 class="display-4 text-center">2018 Speakers</h1>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
</div>
</div>
我正在尝试垂直对齐列内的文本。如果我在父级(列)中使用 my-auto
,那么它会垂直对齐文本,但它会将所有内容拉到中心,我需要保持背景。背景颜色当前位于列上。
当我删除 my-auto
时,完整的橙色背景 returns,但文本位于顶部。
我试过创建一个内部行>列结构来解释它,但它不起作用。有什么想法吗?
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row no-gutters">
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-4 col-xl-4 my-auto" style="background-color: #f04e23;">
<h1 class="display-4 text-center">2018 Speakers</h1>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
</div>
</div>
不使用边距,而是通过添加 .d-flex
class 将列的显示设置为弹性,然后使用 .align-items-center
class 使文本垂直居中。您还可以添加 .justify-content-center
使其水平居中:
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row no-gutters">
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-4 col-xl-4 d-flex align-items-center justify-content-center" style="background-color: #f04e23;">
<h1 class="display-4 text-center">2018 Speakers</h1>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 col-xl-2">
<div class="card">
<img class="img-fluid" src="https://picsum.photos/400/600" alt="" />
</div>
</div>
</div>
</div>