[Element UI] tabs 标题过长溢出省略并悬浮显示全部内容

在这里插入图片描述

思路: 用样式实现溢出省略, 用 el-tooltip 组件达到悬浮时显示的效果。

  1. 修改 tabs 组件的样式
  .el-tabs__item {
    position: relative;
    display: inline-block;
    max-width: 130px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 10px;

    .el-tooltip {
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .el-icon-close {
      position: absolute !important;
      top: 13px !important;
      right: 3px !important;
    }
  }

  .el-tabs__nav {
    line-height: 10px; // 使tab容器高度等于内容高度
  }
  1. 在 el-tab-pane 标签内写入 el-tooltip, 并增加 tabTipDisabled 变量 和 spanMouseenter 事件, tabTipDisabled 控制悬浮提示是否显示, spanMouseenter 事件判断内容是否溢出。

注:
el-tooltip 标签应加上 slot=“label” 属性, 使悬浮内容只有在鼠标悬停时显示;

            <el-tabs
              v-model="editableTabsValue"
              type="card"
              closable
              @tab-remove="removeTab"
              @tab-click="handleTabClick"
            >
              <el-tab-pane
                v-for="item in editableTabs"
                :key="item.id"
                :label="item.title"
                :name="item.id"
              >
               // 增加 el-tooltip 组件来实现悬浮
                <el-tooltip
                  slot="label"
                  effect="light"
                  :content="item.title"
                  placement="bottom-start"
                  :visible-arrow="false"
                  :disabled="tabTipDisabled"
                >
                  <div
                    ref="tooltip-content"
                    @mouseenter="spanMouseenter($event)"
                  >
                    {{ item.title }}
                  </div>
                </el-tooltip>
                <div class="reports-content-tab-des l-mt-10">
                  {{ item.detail }}
                </div>
              </el-tab-pane>
            </el-tabs>

    
    tabTipDisabled: true,

    // 悬浮标签回调
    spanMouseenter(e) {
      let clientWidth = e.target.clientWidth
      let scrollWidth = e.target.scrollWidth
      this.tabTipDisabled =
        clientWidth == scrollWidth || clientWidth == scrollWidth - 1
    },
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值