确定固定div中的文本数量

时间:2013-01-05 19:39:02

标签: php javascript html

  

可能重复:
  Calculate text width with Javascript

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

所以我想知道...是否有可能告诉某个文本块占用多少空间(javascript)?我不打算使用单倍间距字体,即使我这样做,我也不知道它是否有用。

我开始怀疑是否只有不太多的变量需要考虑,而且我最终需要做一些不太精确的事情,例如输出固定的最大字符数。但我想知道是否有人之前已经完成了这样的事情,或者如果普遍的共识是“不可能/不值得努力”。谢谢大家!

2 个答案:

答案 0 :(得分:3)

Working Fiddle

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揭示了这种可能的解决方案。

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