【发布时间】:2019-09-22 02:15:40
【问题描述】:
假设我有一个包含 15 个项目的 flex 容器。如果我希望列换行,以便 10 个项目在第一列(例如),5 个在第二列,那么第二列中的每个项目应该只占用与第一列中的项目相同的高度。换句话说,这 5 个项目不应该占用与第一列相同的空间——间距看起来很奇怪。
有没有办法让列表中的最后一项仅显示在整个容器高度的中间点?
我想要什么:
Item Item
Item Item
Item Item
Item Item
Item Item
Item
Item
Item
Item
发生了什么:
Item Item
Item
Item Item
Item
Item Item
Item
Item Item
Item
Item Item
React / styled-components 代码:
<DailyValuesContainer flexDirection="column" wrap="wrap" justify="space-between">
<DailyValueItem>
<DvQuantity>0g</DvQuantity><DailyValue>Saturated Fat</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>0g</DvQuantity><DailyValue>Trans Fat</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>0mg</DvQuantity><DailyValue>Cholesterol</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>7mg</DvQuantity><DailyValue>Sodium</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>11g</DvQuantity><DailyValue>Dietary Fibers</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>8g</DvQuantity><DailyValue>Sugar</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>1%</DvQuantity><DailyValue>Vitamin A</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>4%</DvQuantity><DailyValue>Vitamin C</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>11%</DvQuantity><DailyValue>Calcium</DailyValue>
</DailyValueItem>
<DailyValueItem>
<DvQuantity>34%</DvQuantity><DailyValue>Iron</DailyValue>
</DailyValueItem>
</DailyValuesContainer>
const DailyValuesContainer = styled(FlexContainer)`
max-height: 170px;
const DailyValueItem = styled(FlexContainer)`
margin-bottom: 12px;
height: 12px;
`
const DailyValue = styled.p`
font-weight: 400;
font-size: 13px;
line-height: 15px;
color: ${colors.primary500};
`
const DvQuantity = styled(DailyValue)`
width: 45px;
`
【问题讨论】:
-
你能用你的代码编辑问题吗?
-
如果你有兴趣,这通过网格来实现要容易得多:jsfiddle.net/51anytxj
-
您告诉应用在与
justify="space-between"的项目之间添加空格。只需将其删除。 -
是的,这就是问题所在,谢谢!