在flex布局中,盒子div有最大最小宽度,子元素被el-tooltip包裹,这个时候使用el-tooltip的disabled进行开启和禁用会导致盒子div宽度直接变成最大宽度状态。
具体描述如下:
在flex布局中,外层div有最大宽度,最小宽度。子元素使用el-tooltip包裹,如果外层div的宽度可以自动调节,子元素的文字使用flex:1;overflow: hidden; text-overflow: ellipsis;
当鼠标移动到具有省略号的文字段上面时,盒子div的宽度会直接变成最大值的状态。为了解决这个现场,尝试了很多方法。下面给出我使用的最终解决方法
el-tooltip组件上不再使用定义使用disabled属性,而是添加一个ref属性ref="tooltip1"
随便取名,然后添加事件鼠标覆盖事件@mouseover.stop="mouseSome(参数1,参数2,参数3,....index)
这里有index是因为我是循环渲染了数据。同时是为了方便拿到对应的el-tooltip。在method中定义方法
mouseSome(参数1,参数2...,index){
//这个时候要获取到对应的ref,给el-tooltip组件内部的disabled 设置参数,就可以必变宽度突然变化
this.$refs.tooltip1[index].disabled = true;
}