当前位置: 首页 > 知识库问答 >
问题:

向右或向左对齐一个flex项目,同时保持其他项目居中

宓昂雄
2023-03-14

我希望ABC在中间对齐。

如何使D完全向右?

之前:

之后:

null

ul {
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
li {
  display: flex;
  margin: 1px;
  padding: 5px;
  background: #aaa;
}
li:last-child {
  background: #ddd;
  /* magic to throw to the right*/
}
<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
</ul>

null

https://jsfidle.net/z44p7bsx/

共有1个答案

计光赫
2023-03-14

以下是实现这种布局的五个选项:

  • CSS定位
  • 带有不可见DOM元素的FlexBox
  • 带有不可见伪元素的FlexBox
  • 带有Flex:1
  • 的FlexBox
  • CSS网格布局

position:relative应用于flex容器。

position:absolute应用于D项。

现在这个项目被绝对定位在flex容器中。

更具体地说,项目D从文档流中移除,但保持在最近位置的祖先的界限内。

使用CSS偏移量属性topright将此元素移动到相应位置。

null

li:last-child {
  position: absolute;
  top: 0;
  right: 0;
  background: #ddd;
}
ul {
  position: relative;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}
li {
  display: flex;
  margin: 1px;
  padding: 5px;
  background: #aaa;
}
p {
  text-align: center;
  margin-top: 0;
}
span {
  background-color: aqua;
}
<ul>
  <li>A</li>
  <li>B</li>
  <li>C</li>
  <li>D</li>
</ul>
<p><span>true center</span></p>
 类似资料:
  • 在Bootstrap 4中,一行中有两列。如果我尝试在行上使用align-items-center或在col上使用align-self center来垂直对齐内容,h4是居中的,但背景不是全高的。以下是一支笔https://codepen.io/geo555/pen/pyalbe

  • 我想在中间对齐和。 如何使完全向右移动? 以前: 之后: https://jsfiddle.net/z44p7bsx/

  • 如何将导航栏项向右对齐? 我想在右边登录和注册。但是我尝试的一切似乎都不起作用。

  • 如何将弹性项向右对齐? 它的输出类似于 我正在寻找

  • 问题内容: 我的网站上移动菜单的底部有一个基于伸缩的无序社交媒体图标列表。 我正在尝试让三排并排坐,等距离分开。我已经用规则来解决了 但是 我的问题是,当有三个以上的项目时,下一行从中间开始填充,而我希望 随着用户添加更多图标, 它从左侧开始填充 。 我越深入地解释这一点,我就越不确定这是否可能,但是我想我还是把它扔出去了,以防万一。 是否可以使下一行中的列表项从容器的左侧开始,而不会弄乱规则?

  • 我有如下要求: 一个元素位于视口的左侧,两个元素位于视口的右侧。为了学习,我尝试了不包装元素的布局。 这种布局在FlexBox中可能吗? 下面是HTML: 我尝试使用和,但没有用。请帮忙。 CSS: