天天看點

div 左右排列 高度自适應_echarts 中 flex 布局可能會導緻高度不能适應的問題

作者:MongoGoing

來源:SegmentFault 思否社群

前言

在項目中使用echarts開發圖表,經常會有幾個圖表并排展示的需求,而圖表又是需要平均配置設定空間的時候,我會首先想到flex布局,flex布局也是開發自适應網站時的首選布局方式,目前最推薦的頁面布局技巧

遇到的問題

在flex布局中,外層父div包裹了三個子div,三個子div高度需要平均,設定了子div的flex均為1使其高度平均自動配置設定,注意如果是在垂直方向上,父元素需要設定flex-direction: column;,在頁面全屏和縮小的時候,echarts的resize可能會使某一個圖表高度自适應失敗

預期的效果

div 左右排列 高度自适應_echarts 中 flex 布局可能會導緻高度不能适應的問題

分析原因

我猜測:echarts在調用resize時會重繪,如果你的子div沒有設定高度,隻是設定了flex:1;那麼會有如下場景發生:觸發三個圖表resize後,子元素高度全為0,父元素高度也為0,會導緻第一個重繪完成的圖表所在的子div高度不明确,可能會使得第一個繪制完成的圖表高度在resize後還是預設的高度

解決辦法

給每個子div設定一個預設最小高度,這個高度不能與你預期的高度差太多,可以使用百分比,如下:

父div:

子div:

- END -

div 左右排列 高度自适應_echarts 中 flex 布局可能會導緻高度不能适應的問題
div 左右排列 高度自适應_echarts 中 flex 布局可能會導緻高度不能适應的問題

繼續閱讀