flex布局中的一些疑惑,代码如下:
<view class="container">
<view class="item1">
A
</view>
<view class="item2">
B
</view>
<view class="item3">
C
</view>
<view class="item2">
D
</view>
<view class="item3">
E
</view>
</view>
css如下:
.container{
display: flex;
flex-flow: row wrap;
justify-content: flex-start;
width: 750upx;
height: 1080upx;
}
.item1{
/*项目1的宽度设置为<=152.3upx,都不会出现换行;设置为152.4upx才出现了换行*/
width: 150upx;
height: 150upx;
background-color: blue;
}
.item2{
background-color: green;
width: 150upx;
height: 150upx;
}
.item3{
background-color: red;
width: 150upx;
height: 150upx;
}
想问下,这5个项目在主轴上应该是排列不下,最后一个项目会换行的对吧?
我理解的是,容器内的第一个项目在容器内的宽度为:152upx;
其余4个项目在容器内所占据的宽度为:600upx;
752upx > 750upx;所以最后一个项目应该换行才对。
我这样理解对吗?
---但是测试发现,居然还能排列在一个主轴内,只有当第一个项目的宽度大于152.3upx的时候,最后一个项目才会换行。
1 个回复
x***@139.com (作者) - uniapp-zzz
我把容器和项目的宽度单位都换成px,就完全没有这个问题了。项目宽度之和比容器宽度多出0.1px都会换行。是upx换算成px的时候,存在小数部分的误差导致的问题???不是很懂或是理解不到位,暂时搁置,有时间再琢磨吧。如有遇到类似问题的明白人请路过指教,多谢!