首页 > 解决方案 > 仅使用弹性功能创建特殊网格

问题描述

我必须创建一个布局,如下所示:

红色div,空格,黄色div,右侧蓝色div

我准备了如下代码:

.red {
  width: 50px;
  height: 50px;
  background-color: red;
  margin-right: 20px;
}

.yellow {
  width: 50px;
  height: 50px;
  background-color: yellow;
}

.blue {
  width: 50px;
  height: 50px;
  background-color: blue;
  justify-self: end;
}

.wrapper {
  display: flex;
  background-color: green;
  width: 100%;
}
<div class="wrapper">
  <div class="red"> </div>
  <div class="yellow"> </div>
  <div class="blue"> </div>
</div>

但是这个蓝色 div 不想与右侧对齐:

红色 div,空间,黄色 div,蓝色 div

在这里您可以预览一下: https ://jsfiddle.net/ncszob80/17/

我知道我可以用margin-left: auto蓝色 div 的 css 样式修复它。但我想知道是否有可能仅通过使用 flex 功能来创建这样的布局。

所以:

如何做到这一点?

标签: htmlcssflexbox

解决方案


你写了:

我知道我可以用margin-left: auto蓝色 div 的 css 样式修复它。但我想知道是否有可能仅通过使用 flex 功能来创建这样的布局。

实际上,margin-left: auto是弹性功能。这是 flex 布局的一个特性。

来自 flexbox 规范:

另见:

总之,只需使用auto边距。这是最干净、最简单和最有效的解决方案。


推荐阅读