【问题标题】:flexbox justify-self: flex-end not working? [duplicate]flexbox justify-self:flex-end 不工作? [复制]
【发布时间】:2018-09-14 10:52:55
【问题描述】:

我有一个布局,其中 有时 缺少“左侧”项目。在这种情况下,我仍然希望“右”项右对齐。

我以为我可以用 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;
}
<div class="row">
  <!--<div class="left">left</div>-->
  <div class="right">right</div>
</div>

【问题讨论】:

    标签: css flexbox


    【解决方案1】:

    您可以在 right 元素上使用 margin-left: auto 代替。此外,当您在父元素上使用 display: flex 时,在子元素上使用 display: inline-block 也不起作用。

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

    【讨论】:

    • 边距:我测试时自动没有响应
    • 要添加到这个答案,justify-self 在 flexbox 中根本不支持,因为它将其所有项目作为一个组来证明是合理的。更多信息(连同边距提示):developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Alignment/…
    • 我创建了一支笔来模拟这个:codepen.io/srsgores/pen/abNLGgr
    • margin-left / margin-right 无法为我拆分它们 - 而是将它们居中。
    • margin-left: auto 的替代方案是在父级上使用justify-content: space-between(假设只有两个子级)。
    猜你喜欢
    • 2016-08-14
    • 2022-01-15
    • 2022-01-17
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 2015-12-13
    • 2019-04-27
    相关资源
    最近更新 更多