描述
要求是,各个元素之间相距24px,换行后,下一行的元素和第一行的开头元素对齐,并且和上一行元素也是24px的间距。
我的解决方案(有问题)
给兄弟元素设置margin-left和top,结果换行后的元素不是从头开始的,第二个元素如果没换行也会有margintop。
于是我就给每个元素设置了margin-right,兄弟元设置margin-bottom,结果第二个元直接换行的话,就触发不了margin-bottom,还是挨在了一起。
如果给每个元素都设置margin-bottom,只有一个元素时,高度看着不正常。
好无语。
难道flex只能用于不换行吗?
解决
.container {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
gap: 16px 16px;
}
可以用
gap
属性的话就很容易,直接gap:24px
;否则的话,display: grid
,然后配合gap
属性。最后就是margin-bottom
。