css - 基于 Flexbox 百分比的跨度“过度使用”有间隙的可用空间
问题描述
我想利用新的 Flexbox Gap 属性,例如gap: 1rem
.
这是一个简单的列布局,其中的块具有基于百分比的大小。我flex-basis
用来设置大小。我希望这些块能够“浮动”多行。这就是为什么flex-wrap: wrap
在父母身上。
<div class="flex gap">
<div class="span-half">
<div class="box">
span-half
</div>
</div>
<div class="span-half">
<div class="box">
span-half
</div>
</div>
<div class="span-quarter">
<div class="box">
span-quarter
</div>
</div>
<div class="span-quarter">
<div class="box">
span-quarter
</div>
</div>
<div class="span-half">
<div class="box">
span-half
</div>
</div>
</div>
.box {
background: #ddd;
padding: .5rem;
}
.flex {
display: flex;
flex-wrap: wrap;
}
.gap {
gap: 1rem;
}
.span-half {
flex-basis: 50%;
}
.span-quarter {
flex-basis: 25%;
}
预计有两行:第一行由两个一半(50%)的容器组成。第二条线由两个四分之一 (25%) 的容器和一个三分之一 (50%) 的容器组成。
这在没有添加间隙时有效。但是一旦 gap 属性进入容器似乎会占用可用空间,但实际的 gap 大小会在此之上添加。
当未启用 flex-wrap 时,它似乎也适用于一行,但也许它只是以这种方式强制它进入布局。
我可以想象它需要一个 CSS calc 函数来从每行的总百分比中减去间隙占用的空间,但我想知道是否以及如何做到这一点。子项的数量不固定,可以是四分之一、一半、第三和第五个元素的任意组合。
供参考:我希望根据填充和边距重构我的 Teutonic CSS 设计系统的当前 Flexbox 网格系统:https ://teutonic.co/examples/flexbox#spans我也知道使用 CSS 网格的其他替代解决方案或而是浮动。
我希望这个问题足够清楚?
解决方案
推荐阅读
- python - 比较两列中用逗号分隔的项目
- office365 - Word 插件 js - 无法写入新文档
- c# - 如何从 Visual Studio 扩展中发现解决方案中的所有测试?
- typescript - 如何在 Typescript 中建模相互关联的属性
- android - 如何获取我的应用程序的本机堆大小和 dalvik 堆大小
- r - 直接将框动态添加到 Shiny Dashboard
- npm - 如何运行名称为空白的 NPM 脚本?
- c# - C# 二进制搜索 + 替换
- python - 为什么 Google Cloud Python 库要添加冗余日志记录?
- python - Python程序中出现意外的编译器错误