布局:
<span class="custom-tree-node" slot-scope="{ node, data }"> 外层span 树节点
<span :title="node.label" class="em-tree-text">{{ node.label }}</span> 内层span(用于文本内容显示)
<span>
:title="node.label" 绑定该属性可实现将鼠标移上去显示全部内容
样式:
.custom-tree-node {
flex: 1;
display: flex;//这里的display属性不用修改(使树节点末尾的按钮右对齐)
align-items: center;
justify-content: space-between;
font-size: 12px;
padding-right: 4px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 100%;//宽度必须是这个,不能使用px或者min-width或者min-width等,因为外层使用了el-card包裹是可以拉动的,换言之树节点的宽度随时可变
& span.em-tree-text{
display: inline-block;//block一样
overflow: hidden;
white-space: nowrap;
width:100%;
text-overflow: ellipsis;
}
另外:input框获取文本内容时,内容过长显示不完全也会将文本框内末尾的图标覆盖,看上去杂乱无章,原理同上,背景同上(也是使用的el-card包裹,左右拖动dragbar文本框的宽度会变化,也是动态的)
.el-input__inner{
height: 30/$r+rem !important;//tree-from-input
display: inline-block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;//超出输入框宽度就自动显示三个小点,但不能设置具体宽度!
padding-right: 25px;
width: 100%;
}