https://jsfiddle.net/vhem8scs/

是否可以让两个项目左对齐,一个项目与弹性框右对齐?该链接更清楚地显示了这一点.最后一个例子是我想要实现的.

在flexbox中,我有一段代码.对于float,我有四个代码块.这就是我喜欢flexbox的原因之一.

HTML

<div class="wrap">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

<!-- DESIRED RESULT -->

<div class="result">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

CSS

.wrap {
  display: flex;
  background: #ccc;
  width: 100%;
  justify-content: space-between;
}

.result {
  background: #ccc;
  margin-top: 20px;
}

.result:after {
  content: '';
  display: table;
  clear: both;
}

.result div {
  float: left;
}
.result div:last-child {
  float: right;
}

推荐答案

要将一个flex子项与右侧对齐,请将其设置为margin-left: auto;

flex spec人中:

主轴上自动页边距的一个用途是分隔弹性项 分成不同的"组".下面的示例说明如何使用它来 重现通用UI模式-单个操作栏,包含一些 左对齐,其他对齐右对齐.

.wrap div:last-child {
  margin-left: auto;
}

更新的小提琴

.wrap {
  display: flex;
  background: #ccc;
  width: 100%;
  justify-content: space-between;
}
.wrap div:last-child {
  margin-left: auto;
}
.result {
  background: #ccc;
  margin-top: 20px;
}
.result:after {
  content: '';
  display: table;
  clear: both;
}
.result div {
  float: left;
}
.result div:last-child {
  float: right;
}
<div class="wrap">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

<!-- DESIRED RESULT -->
<div class="result">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

注:

您可以通过在中间的FLEX项目(或速记flex:1)上设置FLEX-GROW:1来达到类似的效果,这将把最后一个项目一直推到右边.(100)

然而,明显的区别是,中间的项目变得比它可能需要的更大.在flex项目中添加边框以查看差异.

演示

.wrap {
  display: flex;
  background: #ccc;
  width: 100%;
  justify-content: space-between;
}
.wrap div {
  border: 3px solid tomato;
}
.margin div:last-child {
  margin-left: auto;
}
.grow div:nth-child(2) {
  flex: 1;
}
.result {
  background: #ccc;
  margin-top: 20px;
}
.result:after {
  content: '';
  display: table;
  clear: both;
}
.result div {
  float: left;
}
.result div:last-child {
  float: right;
}
<div class="wrap margin">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

<div class="wrap grow">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

<!-- DESIRED RESULT -->
<div class="result">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
</div>

Css相关问答推荐

如何为垫子制作圆角- Select 所有角点上的下拉列表

下拉菜单未展开- bootstrap

如何使用Bootstrap在切换按钮旁边的手风琴标题中添加链接?

当滚动量较小时,在滚动问题上动画粘性导航

为什么我的 CSS 转换在 React 18 中不起作用

如何为 React Native switch 组件创建标签?

react 样式的条件类名称设置

如何让我的 CSS 代码响应小屏幕?

循环一个 sass/scss 变量以生成 css 变量

zoom 时闪烁的背景滤镜模糊

如何为使用jsTreeR拖入层次 struct node 的元素添加顺序编号?

Rails 7引擎如何使未编译的样式表可用于托管应用程序?

使用css水平+垂直翻转/镜像图像

css显示:表格不显示边框

如何始终在浏览器中显示垂直滚动条?

CSS - 在 id 中 Select 类的语法

CSS:在图像周围创建白光

更改 FontAwesome 图标的字体粗细?

CSS 悬停与 JavaScript 鼠标悬停

跨域 iframe 调整大小