【问题标题】:CSS3 Flex: Pull child to the rightCSS3 Flex:将孩子拉到右边
【发布时间】:2018-08-08 02:10:15
【问题描述】:

这就是我所拥有的Fiddle

ul {
  display: flex;
  justify-content: flex-start;
  flex-direction: row;
  align-items: center;
  width: 100%;
  height: 100px;
  background: #333;
  padding: 15px;
}

ul li {
  padding: 15px;
  margin: 5px;
  background: #efefef;
  border: 1px solid #ccc;
  display: inline-block;
  list-style: none;
}

#item-1 {
  height: 50px;
}

#item-2 {
  height: 70px;
}
<ul>
  <li id="item-1">Home</li>
  <li id="item-2">Menu</li>
  <li>More</li>
  <li>Stuff</li>
  <li>Settings</li>
</ul>

我希望将 flex-box 中的最后一个项目拉到右侧(我的小提琴中的“设置”),同时保持所有其他项目的原样。 “设置”项也应该垂直居中。

align-self: flex-end 将项目推到底部(我想要它在右边)。

我更喜欢使用 flex-box 的解决方案,因为我的项目具有可变高度并且应该始终垂直居中。

实现此目的最简洁的方法是什么?

感谢您的帮助!

【问题讨论】:

    标签: html css


    【解决方案1】:

    简单修复,使用自动调整边距:

    ul li:last-child {
        margin-left: auto;
    }
    

    您可能还不想使用width: 100%,以便元素留在可见区域内:

    ul {
        display: flex;
        justify-content: flex-start;
        flex-direction: row;
        align-items: center;
        /* width: 100%; */
        height: 100px;
        background: #333;
        padding: 15px;
    }
    

    http://jsfiddle.net/dwLHE/

    另见https://www.w3.org/TR/css-flexbox-1/#auto-margins

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      相关资源
      最近更新 更多