首先,您应该查看Rob 的答案。JS 是解决这类问题的一种非常极端的方法。
我为您编写了一个简短的实用程序函数,它可以执行您想要的操作,它看起来会削减 al emenet 的第一行并在其后添加一个<br>
。这将使您保持ellipsis
在第二行。
它通常是这样工作的:
- 创建一个模拟元素
- 开始一次写一封信
- 在其宽度大于您的元素之前停止
- 将元素的 HTML 设置为您匹配的文本 +
<br />
+ 其余文本
这是代码:
function appendBR(element){
var text = element.textContent.split("");
var width = element.offsetWidth;
var el = document.createElement("el");
document.body.appendChild(el);
while(text.length > 0){
el.textContent+=text.shift();
if(el.offsetWidth > width-20){
element.innerHTML = el.textContent+"<br />"+text.join("");
document.body.removeChild(el);
return;
}
}
document.body.removeChild(el);
}
var container = document.getElementById("first");
appendBR(container);
请注意,如果您希望它能够抵抗更改窗口的大小,您可以添加一个侦听器(使用 addEventListener 并使用 attachEvent 填充)来滚动。这是一个工作小提琴。