是否可以使两个项目与flexbox左对齐,而使一个项目与flexbox右对齐?该链接显示得更清楚。最后一个例子是我想要实现的。
在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规范:
主轴上自动边距的一种用法是将弹性项目分成不同的“组”。下面的示例演示如何使用它来重现常见的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来达到类似的效果,这会将最后一个项目一直推到右边。
但是,明显的区别是中间项目变得比可能需要的大。在弹性项目上添加边框以查看差异。
.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>
https://jsfidle.net/vhem8scs/ 是否可以用FlexBox将两个项目左对齐,一个项目右对齐?链接更清楚地表明了这一点。最后一个例子是我想要实现的。 在flexbox中,我有一个代码块。对于float,我有四个代码块。这是我更喜欢FlexBox的一个原因。 HTML CSS
我想得到与我的素描相似的效果。 https://postimg.org/image/o03qu4tpp/ 男人总是应该放在头球的右下角。旋转木马应该在中间/中间-左边的位置(头部高度的50%)。 我在标题容器中添加了新类(pad4),并使用了flexbox。 adie-Content: flex-end; line-Item: flex-end; 现在,一个男人在左下角,文本在右上角。我现在不知道
什么是正确的CSS来强制Safari在默认的flex容器中不重叠flex项? Safari似乎为包含大量内容的flex项目提供了太多的宽度。 flex项目在Chrome和Firefox中显示良好。 CSS: HTML: 摆弄代码: http://jsfidle.net/ll05grus/6
如何将弹性项向右对齐? 它的输出类似于 我正在寻找
问题内容: 我正在使用一个伸缩框来显示8个项目,这些项目将随我的页面动态调整大小。如何强制将项目分成两行?(每行4个)? 这是一个相关的片段: 问题答案: 您已经在容器上了。很好,因为它会覆盖默认值source。这是在某些情况下项目无法包装形成网格的原因。 在这种情况下,主要问题在于伸缩项目。 该属性实际上并没有设置弹性项目的大小。它的任务是在容器源中分配可用空间。因此,无论屏幕尺寸有多小,每一项