vue-echarts高度縮小時autoresize失效的原因和解決辦法
背景
項目中采用動態(tài)給x-vue-echarts style賦值width,height的方式實現(xiàn)echarts圖表尺寸的改變
<v-chart ... autoresize ></v-chart>
給v-chart添加autoresize后,在圖表寬度變化,高度增加時無異常,高度減小時圖表并未縮小,反而被截斷了
先說結論
添加全局樣式進行覆蓋
div.vue-echarts-inner { height: 100% !important; }
原理
查看vue-echarts源碼
這里的inner以及useAutoresize中的root值為該dom節(jié)點
所以實際上是在監(jiān)聽div.vue-echarts-inner這個dom節(jié)點的尺寸變化,從而去給inner的子盒子設置width和height
下面是父盒子的css屬性
下面是inner的css屬性
問題就在于flex和height auto
- 父盒子為flex盒且flex-direction為column,子盒子設置flex-grow:1,那么子盒子會填滿父盒子的高度
- 父盒子設置高度為height:auto,那么高度會以其子盒子內(nèi)容高度為準,也就是子盒子是300px,就會把該盒子高度撐到300px
但兩者在一塊就有沖突
這里分為父,子,孫三個盒子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .father { display: flex; flex-direction: column; background-color: red; width: 500px; height: 500px; } .me { flex: 1; width: 300px; background-color: green; height: auto; } .son { width: 100px; background-color: blue; height: 500px; } </style> </head> <body> <div class="father"> <div class="me"> <div class="son"></div> </div> </div> </body> </html>
結論:
父盒子高度大于孫盒子時,子盒子高度跟隨父盒子
父盒子高度小于孫盒子時,子盒子高度跟隨孫盒子
回到vue-echarts場景,所以在高度減少時,inner的父盒子高度減少,但inner子盒子高度不變,所以inner盒子高度不會變,不會觸發(fā)resize
解決辦法:inner設置height: 100%,這樣inner的高度會跟隨其父盒子高度而變化,而不會受其子盒子影響
以上就是vue-echarts高度縮小時autoresize失效的原因和解決辦法的詳細內(nèi)容,更多關于vue-echarts縮小時autoresize失效的資料請關注腳本之家其它相關文章!
相關文章
解決vue報錯:Do?not?mutate?vuex?store?state?outside?mutati
這篇文章主要介紹了解決vue報錯:Do?not?mutate?vuex?store?state?outside?mutation?handlers問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05詳解Vue+elementUI build打包部署后字體圖標丟失問題
這篇文章主要介紹了詳解Vue+elementUI build打包部署后字體圖標丟失問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07Vue?CompositionAPI中watch和watchEffect的區(qū)別詳解
這篇文章主要為大家詳細介紹了Vue?CompositionAPI中watch和watchEffect的區(qū)別,文中的示例代碼簡潔易懂,希望對大家學習Vue有一定的幫助2023-06-06antd vue 如何調(diào)整checkbox默認樣式
這篇文章主要介紹了antd vue 如何調(diào)整checkbox默認樣式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12基于Element封裝一個表格組件tableList的使用方法
這篇文章主要介紹了基于Element封裝一個表格組件tableList的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06