在一行中使用flexbox,left-align和right-align元素

cho*_*ovy 20 html css html5 css3 flexbox

在过去,我会使用两个容器,并使用clearfix向左浮动一个,另一个向右浮动.但我认为这种方法有点陈旧,现在可以很好地支持flex功能.

问题是我不知道如何使用flex来解决这个问题.

这是一个带有一些按钮的屏幕截图.辅助操作左对齐,其他两个主要操作应右对齐.

在此输入图像描述

这是我的标记:

<footer>
    <button>Back</button>
    <span class="primary-btns">
        <button>Cancel</button>
        <button>Go</button>
    </span>
</footer>
Run Code Online (Sandbox Code Playgroud)

有人能告诉我在这里应该使用什么CSS flex方法吗?

Nen*_*car 24

你可以使用 justify-content: space-between

footer {
  display: flex;
  justify-content: space-between;
}
Run Code Online (Sandbox Code Playgroud)
<footer>
  <button>Back</button>
  <span class="primary-btns">
    <button>Cancel</button>
    <button>Go</button>
  </span>
</footer>
Run Code Online (Sandbox Code Playgroud)

更新:您也可以在不span使用DEMO的情况下执行此操作margin-left: auto


Mic*_*l_B 14

在这种情况下,您甚至不需要嵌套容器.

现代CSS技术(flex和grid)使这种布局变得简单,只需要一个容器.

footer {
  display: flex;
}

button:first-child {
  margin-right: auto;
}

button {
  margin: 5px;
}
Run Code Online (Sandbox Code Playgroud)
<footer>
  <button>Back</button>
  <button>Cancel</button>
  <button>Go</button>
</footer>
Run Code Online (Sandbox Code Playgroud)

Flex自动边距消耗指定方向上的所有可用空间.

这也有效:

button:nth-child(2) { margin-left: auto }
Run Code Online (Sandbox Code Playgroud)

所有关于自动边距的内容:对齐Flex项目的方法