【发布时间】:2021-08-28 02:01:43
【问题描述】:
似乎每次我开始认为我掌握了 flex-box 时,我最终都会尝试创建一些我似乎无法弄清楚的东西。我的网站上有一个部分,我希望用户能够动态上传图像。我让 React 为这个组件工作,因此一旦上传了图像,就会出现上传新图像的选项。我正计划通过容器传播 3 个图像,并在添加更多图像时包装一次。为了做到这一点,我使用了一个带有 flex-wrap 和 justify-between 的 flex 行(在边缘对齐)。
我遇到的问题是在每行所需的数字之间有一个数字(例如 2、5、8、...),之间的对齐会导致项目在容器中拆分。这显然不是理想的行为,但过去几个小时我一直在努力修复它,并希望得到一些指导。
为了解决这个问题,我尝试使用 CSS Grid,但无法获得所需的行为,通常只是让元素全部对齐到它们各自网格单元的开头,我无法找到修复这个。
我觉得这应该可以使用纯 CSS 实现,但无论如何我都希望以其他方式显示!
这是我目前得到的行为示例:
以及 flex-grid 未按需要对齐列中的项目(左、中、右)问题的图像。
我的问题代码的 sn-p 是:
<div className="w-full">
<div className="w-full flex flex-wrap justify-between">
{images.map((imageUrl, index) => (
<ImageUpload /> {* Used to display existing uploaded images *}
))}
<ImageUpload /> {* Used as a new upload element *}
</div>
</div>
也可以在这里查看 CodePen:https://codepen.io/developerryan/pen/GRWYKOm
【问题讨论】:
-
请用占位符图像创建一个简短的工作小提琴来演示该问题。提供的代码不够imo。
-
我认为这对于 CSS 网格应该是可行的......所以你基本上需要一个 3 列布局,其中图像应该采用各自列中可用的所有宽度,并且行应该基于图片的数量?
-
@Akash 我认为这听起来是正确的。但是,我无法让它与带有图像的弹性框一起使用。当我设置
w-full时,它只是出于某种原因折叠了容器。 -
我已经在这里创建了一个 Codepen:codepen.io/developerryan/pen/GRWYKOm@Mr_Green
标签: html css reactjs flexbox tailwind-css