el-table-column 內(nèi)容不自動換行的解決方法
場景
使用ElementUI中的Table 表格時,如果列內(nèi)容超過列寬,會默認換行,如下

這樣看起來不美觀,還有可能引起其它樣式問題。那么如何解決呢?
方式一
使用Table組件自帶的show-overflow-tooltip屬性
參數(shù)說明類型可選值默認值show-overflow-tooltip當內(nèi)容過長被隱藏時顯示 tooltipBoolean—false
添加該屬性之后,如果內(nèi)容超出列寬,超長部分會默認省略。當鼠標滑過該內(nèi)容時,會彈出Tip提示
<!--示例-->
<el-table-column
prop="departName"
label="部門"
show-overflow-tooltip
>
</el-table-column>

注:該屬性謹慎使用,如果多列使用且內(nèi)容較多時,會影響頁面性能
方式二
計算每列最大寬度,使內(nèi)容不換行;配合設(shè)置最大字符長度,可以解決大多數(shù)場景問題。接下來展示最基礎(chǔ)的列寬計算方式
示例如下
/**
* 使用span標簽包裹內(nèi)容,然后計算span的寬度 width: px
* @param valArr
*/
function getTextWidth(str) {
let padding = 0;//單元格左右padding距離
let width = 0;
let span = document.createElement('span');
span.innerText = str;
span.className = 'getwidth';
document.querySelector('body').appendChild(span);
// 這里可以獲取當前單元格的font-size 以及 內(nèi)容的中英文、字母等 做更精確的計算
width = document.querySelector('.getwidth').offsetWidth+padding;
document.querySelector('.getwidth').remove();
return width;
}
/**
* 遍歷列的所有內(nèi)容,獲取最寬一列的寬度
* @param {Array} arr 需要計算的數(shù)據(jù)
* @param {Number} minwidth 列最小寬度
*/
function getMaxLength (arr,minwidth=60) {
return arr.reduce((acc, item) => {
if (item) {
let calcLen = getTextWidth(item);
if (acc < calcLen) {
acc = calcLen;
}
}
return acc<minwidth?minwidth:acc;
}, 0)
}
/**
* @description 計算列表列寬(把內(nèi)容撐開)
* @param {Array} columns 列的數(shù)組
* @param {Array} tableArr 列表的數(shù)組
* */
function calcColumnsWidth(columns, tableArr) {
columns.forEach((item) => {
const arr = tableArr.map((x) => x[item.props]);
item.width = getMaxLength(arr);
arr.push(item.label); // 把每列的表頭也加進去算
});
return columns;
}
<!--獲取列表數(shù)據(jù)之后,計算每列最大寬度-->
let res = await this.axios.post('/api/xxx/xxxx');
if(res.data.data.length > 0){
const columns = calcColumnsWidth(this.tableHead, res.data.data);
this.tableHead = columns;
}
效果如下:列寬自動撐開,列表寬度不夠時,底部會出現(xiàn)滾動軸。

到此這篇關(guān)于el-table-column 內(nèi)容不自動換行的解決方法的文章就介紹到這了,更多相關(guān)el-table-column 不自動換行內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用element ui中el-table-column進行自定義校驗
- vue如何使用element ui表格el-table-column在里面做判斷
- el-table-column疊加el-popover使用示例小結(jié)
- Vue+ElementUI踩坑之動態(tài)顯示/隱藏表格的列el-table-column問題
- Vue element el-table-column中對日期進行格式化方式(全局過濾器)
- vue中如何給el-table-column添加指定列的點擊事件
- 關(guān)于el-table-column的formatter的使用及說明
- vue中el-table格式化el-table-column內(nèi)容的三種方法
- el-table el-table-column表頭嵌套循環(huán)數(shù)據(jù)的示例代碼
相關(guān)文章
element-ui 遠程搜索組件el-select在項目中組件化的實現(xiàn)代碼
這篇文章主要介紹了element-ui 遠程搜索組件el-select在項目中組件化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Vue.js使用axios動態(tài)獲取response里的data數(shù)據(jù)操作
這篇文章主要介紹了Vue.js使用axios動態(tài)獲取response里的data數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
詳解Vue3?父組件調(diào)用子組件方法($refs?在setup()、<script?setup>?中使用)
這篇文章主要介紹了Vue3?父組件調(diào)用子組件方法($refs?在setup()、<script?setup>?中使用),在 vue2 中 ref 被用來獲取對應(yīng)的子元素,然后調(diào)用子元素內(nèi)部的方法,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08

