html - 仅使用 Flex 功能创建特殊网格

标签 html css flexbox

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

Red div, space, yellow div, blue div on the right side

我准备了如下代码:

.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 不想与右侧对齐:

red div, space, yellow div, blue div

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

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

所以:

  • 我们只能使用 Flex 功能

  • 红色div和黄色div之间需要有一些边距

  • 蓝色 div 需要位于最右侧

如何实现这一目标?

最佳答案

您写道:

I know that I can fix it with margin-left: auto css style for blue div. But I'm wondering if there is some possibility of creating such layout only by using flex functionality.

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

来自 flex 盒规范:

另请参阅:

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

关于html - 仅使用 Flex 功能创建特殊网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53421350/

相关文章:

javascript - React Native 中的 Flex header 布局

css - 我怎样才能让 flex 元素在保持相同大小的同时增长?

javascript - 如何更改 jsFiddle 代码使其在浏览器中工作

css - 为不同的分辨率扩展容器 div 中的 div

html - 我的代码有什么问题? (试图创建一个 slider )

html - 指向 css 文件的链接在 chrome 和 opera 中不起作用,在 firefox 中起作用

html - 包含textarea的div左右重叠div

javascript - 如何激活主菜单栏下方的滑动菜单栏

CSS菜单跳转到页面修改左侧?

angular - 运行 ng serve 时出现 flex-layout 的问题