2013-01-05 80 views
3

可能重複:
Calculate text width with Javascript確定足夠的文字,固定的div如何適應

好了,這裏就是我想看看是否可以完成。我想把用戶提交的文本(所以..可變長度),並將其放置到一個固定的寬度/高度div。如果文本將超出分配的空間,我想盡可能地展示並在末尾放置省略號(...),儘可能靠近邊界。

所以,我想知道...是否有可能告訴多少空間一定的文本塊將佔用(JavaScript)?我不打算使用單間隔字體,即使我做了,我也不知道它會有多大幫助。

我開始懷疑是否只是沒有太多的變量來解釋,並且我最終需要做一些不太精確的事情,比如輸出固定的最大字符數。但我想看看以前有沒有人做過這樣的事情,或者如果普遍的共識是「不可能/不值得努力」。謝謝大家!

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

以上將返回文本的寬度!

+0

希望以上幫助:D –

+0

這是完美的,謝謝。給我一個我需要的方向。通過固定div的寬度並使用offsetHeight作爲比較,我可以遍歷文本,減去字符,直到獲得一個完美匹配目標大小div的字符串。謝謝。 – dgeare

+0

我的榮幸先生。 –

2

快速搜索爲您揭示了這種可能的解決方案here

這可能不是你正在尋找的。當我發現更多時,我會繼續挖掘並更新這個。

+0

非常感謝您的幫助。 – dgeare