首页  >  文章  >  web前端  >  为什么 Flex 项目不通过边距和“边框”大小缩小以适应每行三个?

为什么 Flex 项目不通过边距和“边框”大小缩小以适应每行三个?

DDD
DDD原创
2024-11-02 18:51:31314浏览

Why Don't Flex Items Shrink to Fit Three Per Row with Margins and `border-box` Sizing?

Flex 项目忽略边距和边框大小

在 Flexbox 中,通过设置 flex: 1 1 33.33% 和 margin: 10px on flex物品,人们可能期望每排三个盒子。然而,使用 flex-wrap:wrap 时,盒子不会缩小到每行三个。

原因在于 box-sizing: border-box 的本质。虽然此属性在宽度和高度计算中包括填充和边框,但不包括边距。边距是单独计算的,默认情况下,Flex 项目具有 flex-shrink: 1,允许它们收缩以适合容器。

要解决此问题,可以通过设置 flex- 来覆盖默认行为收缩:0。这可以防止弹性项目收缩到边缘。

另一个解决方案是调整 flex-basis 值,同时保持 flex-grow: 1。因为没有由于 flex-grow 会消耗可用空间,因此需要使用 flex-basis 来强制换行,因此可以减小该值以适应边距。例如,通过设置 flex: 1 1 26% 和 margin: 10px,Flex 项目现在可以按预期调整。

以上是为什么 Flex 项目不通过边距和“边框”大小缩小以适应每行三个?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn