Flexbox调整内容取决于孩子的数量

Ily*_*lov 5 css alignment flexbox

有这个:

  <label>
    <button>Create</button>
  </label>
Run Code Online (Sandbox Code Playgroud)

我希望按钮像这样右对齐

----------------------------
|                   [create]|
----------------------------
Run Code Online (Sandbox Code Playgroud)

同时具有:

  <label>
    <button>Delete</button>
    <button>Update</button>
  </label>
Run Code Online (Sandbox Code Playgroud)

我希望按钮在角落

----------------------------
|[delete]          [update]|
----------------------------
Run Code Online (Sandbox Code Playgroud)

无需向标签添加其他类。

Nen*_*car 5

您可以使用margin-left: autoon last-child,这将产生所需的结果。

label {
  display: flex;
  border-bottom: 1px solid #aaa;
  margin: 20px 0;
}
label button:last-child {
  margin-left: auto;
}
Run Code Online (Sandbox Code Playgroud)
<label>
  <button>Create</button>
</label>

<label>
  <button>Delete</button>
  <button>Update</button>
</label>
Run Code Online (Sandbox Code Playgroud)


dam*_*amd 2

您可以只使用标准 Flexbox 属性来完成此操作:

  • flex-direction: row-reverse- 将项目排成一行,从“末尾”开始(取决于阅读方向)
  • justify-content: space-between- 将物品放置得尽可能远离彼此

label {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
}
Run Code Online (Sandbox Code Playgroud)
<label>
  <button>Create</button>
</label>

<label>
  <button>Delete</button>
  <button>Update</button>
</label>
Run Code Online (Sandbox Code Playgroud)