html - 将 flexbox 元素与 flex-grow 元素对齐

标签 html css flexbox

给定以下 CSS:

.row {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;
    justify-content: space-between;
}
.middle {
    flex-grow: 1;
    margin: 0 1em;
}

以及以下 HTML:

<div>
    <div class="row">
        <div>X</div>
        <div class="middle">Variable Content</div>
        <div>A</div>
    </div>
    <div class="row">
        <div>X</div>
        <div class="middle">Content</div>
        <div>AB</div>
    </div>
    <div class="row">
        <div>X</div>
        <div class="middle">Var Content</div>
        <div>ABC</div>
    </div>
</div>

此布局包括行和三个“列”:

  • "X"左列每一行都包含相同的元素,所以它的宽度实际上是固定的。此列应仅使用元素所需的空间量。
  • “内容”中间栏包含可变文本。它应该占据每一行的大部分。
  • “ABC” 右栏是我遇到问题的地方。内容是文本,可以是 1-5 个字符。我希望字符在整个“表格”中左对齐。 编辑:我不想声明固定宽度。

工作示例:https://codepen.io/anon/pen/bjEKBW

简而言之:我如何让每一列中的“A”在整个布局中左对齐?我不喜欢 HTML 布局。

最佳答案

你这里有一个table...我建议你使用一个或CSS-Tables。

.row {
  padding: 0;
  margin: 0;
  list-style: none;
  display: table-row;
}

.row div {
  display: table-cell;
  padding: 0 .25em;
}

.middle {
  width: 100%;
}
<div>
  <div class="row">
    <div>X</div>
    <div class="middle">Variable Content</div>
    <div>A</div>
  </div>
  <div class="row">
    <div>X</div>
    <div class="middle">Content</div>
    <div>AB</div>
  </div>
  <div class="row">
    <div>X</div>
    <div class="middle">Var Content</div>
    <div>ABC</div>
  </div>
</div>

或者,您可以放弃行并使用 CSS 网格

.grid {
  display: grid;
  grid-template-columns: auto 1fr auto;
}

.grid div {
  padding: 0 .25em;
}
<div class="grid">

  <div>X</div>
  <div class="middle">Variable Content</div>
  <div>A</div>

  <div>X</div>
  <div class="middle">Content</div>
  <div>AB</div>

  <div>X</div>
  <div class="middle">Var Content</div>
  <div>ABC</div>

</div>

关于html - 将 flexbox 元素与 flex-grow 元素对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51353824/

相关文章:

HTML 5 页脚标签总是在底部

html - 位置:示例中的粘性元素不粘性

html - 我的 anchor 标记重定向到我自己的 WordPress 网站/"the link I gave in Tag"

javascript - jQuery 的问题包含选择 div 和 span 元素的方法

javascript - 在 native pdf 查看器中打开 Base64 编码的 PDF

javascript - 如何将 HTML 链接定向到 R Shiny 中的侧边栏项目

jquery - 滚动条无法滚动到容器的末尾

android - 将内容限制在特定列的移动友好 CSS 多列布局

html - flexbox 元素不会到达容器的末尾

html - 如何在不使用定位属性的情况下保持子元素垂直和水平居中