【问题标题】:How do I center stuff vertically inside a div using flexbox [duplicate]如何使用 flexbox 在 div 中垂直居中内容 [重复]
【发布时间】:2020-06-23 07:11:24
【问题描述】:

所以我试图将我的图像和按钮放在我的 container-1 div 的第一个和最后一个 div 中。但是,它似乎不想居中,我不明白为什么。我很想知道为什么它不居中以及如何将其居中。

.container-1 {
  display: flex;
}

.container-1 div {
  border: 1px #ccc solid;
  padding: 10px;
}

.container-1 .body {
  flex-grow: 1
}

.container-1 .box-img img {
  align-items: center;
  height: 75px;
}

.container-1 .box-button button {
  align-self: center;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-1">

  <div class="box-img">
    <img src="https://images.squarespace-cdn.com/content/5c2aec4b1137a6d8849debf1/1589482673361-JFOXBM38XYSJQ9MUBEDW/image-asset.jpeg?format=1000w&content-type=image%2Fjpeg" />
  </div>

  <div class="body">
    <h3>Title</h3>
    <p>Description</p>
  </div>

  <div class="box-button">
    <button class="btn btn-primary">Button</button>
  </div>

</div>

【问题讨论】:

  • 啊,是的。在有人回答后关闭此问题。

标签: html css twitter-bootstrap bootstrap-4 flexbox


【解决方案1】:

基本上,你想使用:

display: flex;
align-items: center;

在父元素上。这将使孩子们垂直居中。

看看下面的工作代码。

.container-1 {
  display: flex;
}

.container-1 div {
  border: 1px #ccc solid;
  padding: 10px;
}

.container-1 .body {
  flex-grow: 1
}

.box-img {
  display: flex;
  align-items: center;
}
.box-img img {
  height: 75px;
}

.box-button {
  display: flex;
  align-items: center;
  
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-1">

  <div class="box-img">
    <img src="https://images.squarespace-cdn.com/content/5c2aec4b1137a6d8849debf1/1589482673361-JFOXBM38XYSJQ9MUBEDW/image-asset.jpeg?format=1000w&content-type=image%2Fjpeg" />
  </div>

  <div class="body">
    <h3>Title</h3>
    <p>Description</p>
  </div>

  <div class="box-button">
    <button class="btn btn-primary">Button</button>
  </div>

</div>

【讨论】:

  • 我认为在父级上有display: flex; 就足够了,或者我猜 container-1 不是父级而是祖先?
  • display: flex 在父级旁边的直接子级上工作,因此在这种情况下,“.container-1”上的 display: flex 会弯曲容器:“.box-img”、“.body”和“ .box-button"(还不是每个里面的东西)。例如,您要做的是再次对“.box-button”内的内容使用display: flex。之后,添加align-items: center; 以使该容器的垂直直接子级居中。我希望它澄清。
猜你喜欢
  • 2016-05-17
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 2017-09-25
  • 2019-06-28
  • 2016-09-10
  • 1970-01-01
  • 2017-08-16
相关资源
最近更新 更多