CSS Flex所有中心除了单右水平对齐元素

Joh*_*ohn 6 css flexbox

使用CSS flex我试图让所有内联元素居中,除了一个内联元素在右边对齐.我不想扩大盒子的大小或改变与垂直轴有关的任何东西.我无法获得这个CSS Flexbox生成器可以自己生成的任何东西.如果我添加margin-left最后一个元素,那么所有其他元素都对齐到左边.在那之后,如果我添加margin-left: auto;margin-right: auto;所有其他元素,他们展开.横向和纵向之间的区别无济于事.

如何保持前三个元素保持分组和居中,只更改最后一个元素的水平布局?我宁愿能够继续使用margin-right: 2px;它,而不是在它的边界上.parentNode.parentNode

<header>
<span>Item 1</span>
<span>Item 2</span>
<span>Item 3</span>
<span>Item 4</span>
</header>
Run Code Online (Sandbox Code Playgroud)

我想要实现的目标的视觉演示:

除了一个右对齐的元素外,CSS Flex全部水平居中

Mic*_*ker 7

您可以使用绝对定位.

header {
  display: flex;
  justify-content: center;
  border: 1px solid black;
}
span {
  border: 1px solid black;
  width: 100px;
  height: 100px;
}
span:last-child {
  position: absolute;
  right: 2px;
}
Run Code Online (Sandbox Code Playgroud)
<header>
<span>Item 1</span>
<span>Item 2</span>
<span>Item 3</span>
<span>Item 4</span>
</header>
Run Code Online (Sandbox Code Playgroud)

  • 这里如果使用absolute的话会有重叠 (3认同)