element ui的el-tree文字显示不全的解决办法


使用element ui的树组件el-tree时,经常出现如下问题:

在这里插入图片描述
el-tree渲染时因为文字内容长度不一致,导致过长的文字无法显示完全。
经尝试发现如下三种解决方法,推荐方法三。

方法一: 最简单的设置横向滚动条

效果:
在这里插入图片描述
在当前树节点的span标签上设置样式

overflow: auto;
// 或者
overflow-x: auto;

问题:
因为只有在最内层span层设置overflow时,能有效控制超出部分的显示,导致多个文字超长部分都有横向滚动条出现,有点丑。即便是在上一层label层添加overflow一样还是丑。所以问题等于没解决。下一个

方法二: 添加拖拽条改变外层容器宽度

详见另一篇文章:
https://blog.csdn.net/Beam007/article/details/119823933

问题:
办法是好办法,就是有点麻烦,我只是想要简单的显示完全不想拖来拖去怎么办?下一个

方法三: 通过…表示 鼠标移上去显示全称

效果:
在这里插入图片描述
过程:
遇到问题首先想到的就是这个解决办法,无奈绕了很多弯路才走上正道。
因为element ui官方el-tree文档里没有给节点插入title标签的说明,于是我打开源码在其对应节点的span标签强制写上title="node.name"之类的并没有任何用处。
直到看到自定义节点内容,虽然官方举例用来插入和删除节点,但是我可以把点击事件变成悬浮事件显示节点文本全内容啊。
然后选用scoped slot插入的时候发现:
在这里插入图片描述
最后终于结束了这个问题。

代码:
使用el-tree组件如下:

<el-tree ref="tree" :data="treeMenus" :props="multiProps" :show-checkbox="true" :node-key="nodeId">
	<span class="span-ellipsis" slot-scope="{ node, data }">
		<span :title="node.label">{{ node.label }}</span>
	</span>
</el-tree>

给span标签添加样式,通过…表示文本未完全显示:

.span-ellipsis {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

补充说明:
如果.span-ellipsis样式设置无效,可能需要加上display: block;即为:

.span-ellipsis {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  display: block;
}

因为我用element ui的el-tree组件,span的外层样式默认为display: flex; 则无需设置span的display属性即可。

  • 24
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值