flexbox justify-self:flex-end不工作?

mpe*_*pen 25 css flexbox

我有一个布局,有时 "左"项缺失.在这种情况下,我仍然希望"正确"的项目是右对齐的.

我以为我可以这样做,justify-self但似乎并非如此.

是否有一个flexbox属性用于右对齐一个人的自我?

.row {
  border: 1px solid black;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.left,
.right {
  display: inline-block;
  background-color: yellow;
}

.right {
  justify-self: flex-end;
}
Run Code Online (Sandbox Code Playgroud)
<div class="row">
  <!--<div class="left">left</div>-->
  <div class="right">right</div>
</div>
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 31

你可以使用margin-left: autoright元素来代替.此外,当您display: flex在子元素display: inline-block上使用父元素时,将无法正常工作.

.row {
  border: 1px solid black;
  display: flex;
  align-items: center;
}
.left,
.right {
  background-color: yellow;
}
.right {
  margin-left: auto;
}
Run Code Online (Sandbox Code Playgroud)
<div class="row">
  <!--<div class="left">left</div>-->
  <div class="right">right</div>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 为了补充这个答案,flexbox 中根本不支持“justify-self”,因为它将所有项目作为一个组进行调整。更多信息请参见此处(以及边距提示):https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Alignment/Box_Alignment_in_Flexbox (25认同)
  • “margin-left: auto”的替代方案是在父级上使用“justify-content: space- Between”(假设只有两个子级)。 (4认同)