代码:
<el-table :data="dataList" style="width: 100%" border height="600px" v-loading="loading" @selection-change="handleSelection">
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column v-for="item in displayColumns" :key="Math.random()" :prop="item.prop" :label="item.label" align="center"
min-width="200px" show-overflow-tooltip>
</el-table-column>
<!-- 插槽 -->
<slot name="operation"></slot>
</el-table>
<template v-slot:operation>
<div>
<el-table-column label="操作" align="center" fixed="right" width="250">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="viewdetail(scope.row)">详情</el-button>
</template>
</el-table-column>
</div>
</template>
上图的代码会造成操作栏错乱,其实造成错乱的根本原因是因为设置了fixed="right"
,但是这个属性在操作栏上又是必不可少的,所以只能从其它方面找问题。
这种错乱有一个规律,窗口大小变化后,错乱消失,也就是说el-table
没有获取到合适的高度,导致的列错乱。
在上面代码中,有一行 :height="600px"
这个才是造成错乱列错乱的原因。
<el-table :data="dataList" height="600px" >
应为列表没有获取到正确的高度,vh
单位同样如此,它会导致列错乱,所以更改成流式高度即可解决。
<el-table :data="dataList" max-height="600px" >
流式高度不会默认设置高度,它只会给列表高度设限,所以在初始化的时候,由于列表的高度并没有设置,所以它会按照自身的高度排列。max-height="600px"
也可以使用 60vh
,但是最好以px
为单位,否则在部分场景下vh
单位会导致列表无法滚动。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。