3

可能重复:
使用 Javascript 计算文本宽度

好吧,这就是我想看看是否可以完成的事情。我想获取用户提交的文本(所以..可变长度)并将其放入固定宽度/高度的 div 中。如果文本将超出分配的空间,我想尽可能多地显示并在末尾放置一个省略号 (...),尽可能靠近边界。

所以我想知道......是否有可能告诉某个文本块将占用多少空间(javascript)?我不想使用等距字体,即使我这样做了,我也不知道它是否会有很大帮助。

我开始怀疑是否根本没有太多变量需要考虑,并且我最终需要做一些不太精确的事情,例如输出固定的最大字符数。但我想看看以前是否有人完成过类似的事情,或者普遍的共识是“不可能/不值得努力”。谢谢大家!

4

2 回答 2

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);

以上将返回文本的宽度!

于 2013-01-05T19:53:27.620 回答
2

快速搜索在这里为您揭示了这个可能的解决方案。

这可能不是您正在寻找的。当我发现更多时,我会继续挖掘和更新。

于 2013-01-05T19:44:38.790 回答