Element-ui 中tabs 标题过长解决办法

前言:在使用tabs 标签时,有的时候ttile很长,想要在超出一定值时出现省略号。

实现效果:
在这里插入图片描述

模板代码:

<template>
<div class="tabs-app">
<el-tabs v-model="editableTabsValue" type="card" editable @edit="handleTabsEdit">
<el-tab-pane :key="item.name"
v-for="(item) in editableTabs"
:label="item.title"
:name="item.name">
{{item.content}}
</el-tab-pane>
</el-tabs>
</div>
</template>

样式代码:

<style lang="scss" scoped>
// tabs标签标题过长解决样式
.tabs-app{
/deep/ .el-tabs__item{
position: relative;
display: inline-block;
white-space: nowrap;
max-width: 130px;
overflow: hidden;
text-overflow:ellipsis;
.el-icon-close{
position: absolute;
top: 13px;
right: 3px;
}
}
/deep/ .el-tabs__header{
.is-closable:hover{
padding-left: 10px;
padding-right: 20px;
}
}
/deep/ .el-tabs__nav{
line-height: 10px;
}
}
</style>

源代码:

<template>
<div class="tabs-app">
<el-tabs v-model="editableTabsValue" type="card" editable @edit="handleTabsEdit">
<el-tab-pane :key="item.name"
v-for="(item) in editableTabs"
:label="item.title"
:name="item.name">
{{item.content}}
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
export default {
data () {
return {
editableTabsValue: '2',
editableTabs: [{
title: 'Tab 1',
name: '1',
content: 'Tab 1 content'
}, {
title: 'element tabs 标题过长element tabs 标题过长element tabs 标题过长element tabs 标题过长element tabs 标题过长',
name: '2',
content: 'Tab 2 content'
}],
tabIndex: 2
}
},
methods: {
handleTabsEdit (targetName, action) {
if (action === 'add') {
let newTabName = ++this.tabIndex + ''
this.editableTabs.push({
title: 'New Tab',
name: newTabName,
content: 'New Tab content'
})
this.editableTabsValue = newTabName
}
if (action === 'remove') {
let tabs = this.editableTabs
let activeName = this.editableTabsValue
if (activeName === targetName) {
tabs.forEach((tab, index) => {
if (tab.name === targetName) {
let nextTab = tabs[index + 1] || tabs[index - 1]
if (nextTab) {
activeName = nextTab.name
}
}
})
}
this.editableTabsValue = activeName
this.editableTabs = tabs.filter(tab => tab.name !== targetName)
}
}
}
}
</script>
<style lang="scss" scoped>
// tabs标签标题过长解决样式
.tabs-app{
/deep/ .el-tabs__item{
position: relative;
display: inline-block;
white-space: nowrap;
max-width: 130px;
overflow: hidden;
text-overflow:ellipsis;
.el-icon-close{
position: absolute;
top: 13px;
right: 3px;
}
}
/deep/ .el-tabs__header{
.is-closable:hover{
padding-left: 10px;
padding-right: 20px;
}
}
/deep/ .el-tabs__nav{
line-height: 10px;
}
}
</style>
posted @   轻风细雨_林木木  阅读(713)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示