【发布时间】:2016-12-20 00:32:42
【问题描述】:
我有一个用 html/js 创建的树视图。显示文本的元素是一个 span。
我想限制跨度的宽度,因为有时文本很长。例如,我只想显示前 20 个字符。如果比这长,显示一个省略号。
所以我尝试设置一个最大宽度,但这对于跨度来说是不被尊重的。
如果我将 span 更改为 div,它可以工作,但它会完全改变树视图的布局。
有什么方法可以实现吗? (我在下面放了“LIMIT TEXT HERE”以显示要限制的跨度。)
<ul class="tree-view-list">
<li class="node-item">
<i click.delegate="toggleItems(item)"
if.bind="item.nodeAspect.isExpanded && item.children.length > 0"
class="icon sf-icon-chevron-down p-r-half grow chevron"
aria-hidden="true"></i>
<i click.delegate="toggleItems(item)"
class="icon sf-icon-chevron-right p-r-half grow chevron"
if.bind="!item.nodeAspect.isExpanded && item.children.length > 0"
aria-hidden="true"></i>
<div if.bind="item.nodeAspect.isEditing">
<form>
<input blur.trigger="saveEdit(item)" attach-focus="true" type="text" value.bind="item.name">
<button style="display: none" click.delegate="saveEdit(item)"></button>
</form>
</div>
<span class="e-treeview">
<span if.bind="!item.nodeAspect.isEditing"
mouseover.delegate="onMouseOver(item)"
mouseout.delegate="onMouseOut(item)"
class="node-wrapper ${item.nodeAspect.isSelected ? 'node-is-selected e-active' : ''} ${item.nodeAspect.isHovering ? 'e-node-hover' : ''}"
click.delegate="nodeSelected(item)"
dblclick.delegate="nodeDoubleClick(item)">
<span draggable="true"
class="node-text"
contextmenu.delegate="showContextMenu($event, item)"
dragstart.delegate="dragStart($event, item)"
dragover.delegate="dragOver($event, item)"
drop.delegate="drop($event,item)">
<i class="tree-view-icon sf-icon-${item.itemType.icon}"></i> ${item.name} LIMIT TEXT HERE
</span>
</span>
</span>
<compose if.bind="item.nodeAspect.isExpanded" repeat.for="item of item.children" view="./tree-view.html"></compose>
</li>
</ul>
【问题讨论】: