x***@139.com
x***@139.com
  • 发布:2020-02-05 00:02
  • 更新:2020-02-05 15:28
  • 阅读:720

flex布局上的一点疑惑

分类:uni-app

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的时候,最后一个项目才会换行。

2020-02-05 00:02 负责人:无 分享
已邀请:
x***@139.com

x***@139.com (作者) - uniapp-zzz

我把容器和项目的宽度单位都换成px,就完全没有这个问题了。项目宽度之和比容器宽度多出0.1px都会换行。是upx换算成px的时候,存在小数部分的误差导致的问题???不是很懂或是理解不到位,暂时搁置,有时间再琢磨吧。如有遇到类似问题的明白人请路过指教,多谢!

该问题目前已经被锁定, 无法添加新回复