html - 在列方向上的 flexbox 中的内联 block

标签 html css flexbox vertical-alignment

如何使具有 display: inline-block 的 C、D、E 只占用它们需要的空间以适应它们内部的文本,并且可以彼此相邻显示(并排成一行)在一个 flex-direction 设置为 column 的 flexbox 中?请注意,我不想将 C、D、E 包装在容器中以获得所需的结果

body {
  padding: 0;
  margin: 0;
}

.container {
  display: flex;
  flex-direction: column;
}

.a,.b,.c,.d,.e {
  height: 50px;
  line-height: 50px;
  border: 1px solid;
  text-align: center;
}

.c,.d,.e {
  display: inline-block;
}

.a {
  background: cyan;
}

.b {
  background: yellow;
}

.c {
  background: orange;
}

.d {
  background: gray;
}

.e {
  background: pink;
}
<div class="container">
  <div class="a">A</div>
  <div class="b">B</div>
  <div class="c">C</div>
  <div class="d">D</div>
  <div class="e">E</div>
</div>

最佳答案

您可以使用 flexbox 属性 itslef - 而不是 inline-block 使用 align-self: center (或 flex - 按照你认为合适的方式开始)

.c,.d,.e {
  align-self: center;
}

请看下面的演示:

body {
  padding: 0;
  margin: 0;
}

.container {
  display: flex;
  flex-direction: column;
}

.a,.b,.c,.d,.e {
  height: 50px;
  line-height: 50px;
  border: 1px solid;
  text-align: center;
}

.c,.d,.e {
  align-self: center;
}

.a {
  background: cyan;
}

.b {
  background: yellow;
}

.c {
  background: orange;
}

.d {
  background: gray;
}

.e {
  background: pink;
}
<div class="container">
  <div class="a">A</div>
  <div class="b">B</div>
  <div class="c">C</div>
  <div class="d">D</div>
  <div class="e">E</div>
</div>

关于html - 在列方向上的 flexbox 中的内联 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40258745/

相关文章:

css - 在 HTML5 中可以使用类似于 photoshop 的混合模式吗?

html - IE 链接背景图片不起作用

html - 为什么 flex 元素不缩小过去的内容大小?

html - 模态顶部在 flexbox 中被截断

html - 背景仅与视口(viewport)一样宽

html - 在表格单元格中包装单词,但固定表格布局使列大小相等

jquery - 如何使用CSS设置输入类型文件的样式

Javascript 没有调整 iframe 的大小

css - flexbox 可以水平和垂直居中图像而不拉伸(stretch)它们吗?

jquery - 如何使用 CSS 或 jQuery 强制内联 block 换行到新行?