好的,所以这就是我想看看能否实现的目标。我想获取用户提交的文本(所以..可变长度)并将其放入固定的宽度/高度div。如果文本将超出分配的空间,我想尽可能多地显示并在末尾放置省略号(...),尽可能靠近边界。
所以我想知道...是否有可能告诉某个文本块占用多少空间(javascript)?我不打算使用单倍间距字体,即使我这样做,我也不知道它是否有用。
我开始怀疑是否只有不太多的变量需要考虑,而且我最终需要做一些不太精确的事情,例如输出固定的最大字符数。但我想知道是否有人之前已经完成了这样的事情,或者如果普遍的共识是“不可能/不值得努力”。谢谢大家!
答案 0 :(得分:3)
function width(tex) {
var text = tex;
var div = document.createElement("div");
div.style.position="absolute";
div.style.top="-999px";
div.style.left="-999px";
div.id = "width";
div.innerHTML=tex;
document.body.appendChild(div);
var el = document.getElementById("width");
var w = el.offsetWidth;
el.parentNode.removeChild(el);
return w;
}
var s = parseInt(width("s"), 10);
alert(s);
以上将返回文字的宽度!
答案 1 :(得分:2)
快速搜索为您here揭示了这种可能的解决方案。
这可能不是您正在寻找的。当我找到更多时,我会继续挖掘和更新。