html - CSS 将元素保持在底部的中心

标签 html css

我需要创建一个标签部分。容器应该有固定的填充,当标签换行到下一行时,它应该与顶行有间距。

问题是当它换行到下一行时,它不再居中对齐。如何保持容器中行与固定填充之间的间距?

.flex {
  display: flex;
}

.align-center {
  align-items: center;
}

.wrap {
  flex-wrap: wrap;
}

section {
  border: 1px solid grey;
  min-height: 40px;
  width: 400px;
  padding: 0 0.5em;
}

.item {
  background-color: hotpink;
  padding: 0.3em;
  margin-right: 0.4em;
  margin-bottom: 0.3em;
}

* {
  box-sizing: border-box;
}
<section class="flex align-center wrap">

  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>

</section>

最佳答案

您需要为 .flex container 定义相同的 top & bottom padding,这将保持.item 始终垂直居中,然后只需调整 child 的 margin 即可实现 它们之间的间距相等:

* {box-sizing: border-box}

.flex {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  border: 1px solid grey;
  min-height: 40px;
  width: 400px;
  padding: .5em .2em;
  animation: width 4s linear infinite alternate;
}

.item {
  background-color: hotpink;
  padding: .3em;
  margin: .2em;
}

@keyframes width {to {width: 100px}}
<section class="flex">
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
</section>

关于html - CSS 将元素保持在底部的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50713521/

相关文章:

javascript - .height() 不是函数 javascript

html - 如何抑制先前声明的 CSS 规则? (背景颜色)

html - 调整窗口大小时 body/maindiv 的居中消失

html - 你如何保持页面之间的缩放一致?通过 CSS?

javascript - 在 linemanjs 中引用 vendor 文件夹 css 和 js

html - 如何将图像置于 tbody 标签(也有一个 thead)内?

javascript - 使用 iPhone 时网站出现水平滚动

jQuery + CSS 元素更改

html - CSS 相邻兄弟选择器

javascript - 下拉菜单主体上的 Accordion 框阴影