問題:ell-col的高度不一致導致換行,刷新后審查el-col的高度一致
我這邊是el-col寫的span超過了24,自行換行,測試發現初次進入里面的高度渲染的不一致,有的是51px有的是51.5px
問題原因分析
Flex布局換行機制
Element-UI的 el-row默認使用Flex布局,子元素el-col的換行邏輯基于容器寬度和子元素總寬度的計算。當子元素高度不一致時,瀏覽器在計算可用空間時可能出現微小誤差(如51px與51.5px的差異),導致某些情況下系統誤判為需要換行。
渲染精度問題
瀏覽器渲染時,高度計算可能存在像素級的四舍五入誤差。例如,51.5px的實際渲染高度可能被計算為52px,而51px保持不變。這種差異會導致Flex容器認為當前行已無法容納第4個元素,從而觸發換行
動態內容影響
如果el-col的高度由內容動態決定(如文本自動換行),不同高度的元素可能導致換行條件不穩定。刷新頁面時,內容加載順序或渲染時間的微小差異可能改變高度計算結果,導致換行行為不一致。
解決方法
統一高度:高度一致,消除計算誤差,適用于高度差異較小且內容可控
<el-row :gutter="30"><el-col :span="8"></el-col><el-col :span="8"></el-col><el-col :span="8"></el-col><el-col :span="8"></el-col><el-col :span="8"></el-col>
</el-row>
把所有的el-col的高度統一設置為max-height:51px;
高度一致就得到了想要的效果,一行3個
<el-row :gutter="30"><el-col :span="8" style="max-height: 51px;"></el-col><el-col :span="8" style="max-height: 51px;"></el-col><el-col :span="8" style="max-height: 51px;"></el-col><el-col :span="8" style="max-height: 51px;"></el-col><el-col :span="8" style="max-height: 51px;"></el-col>
</el-row>