如何根据文本的长度自动调整固定DIV中的文本?

时间:2010-11-09 08:47:20

标签: javascript asp.net jquery html fonts

我有一个固定的宽度和高度DIV,我需要把文字放在里面。 问题是,这个文本可以有不同的长度(字母方式),所以我不介意一旦它溢出就减小它的大小。

但我怎么能这样做?

由于

2 个答案:

答案 0 :(得分:3)

如果您定位现代浏览器,则可以使用window.getComputedStyle 它返回应用于元素的所有真实样式属性的集合。

分配文本时,可以获取其大小并将其与div的大小进行比较。并减少或增加字体大小并再次测量。
在几个循环中,你应该得到DIV中的文本。

以下是说明:https://developer.mozilla.org/en/DOM:window.getComputedStyle

答案 1 :(得分:1)

长话短说,你不能这样做,因为各种平台和浏览器以不同的方式呈现字体。

并且,没有跨浏览器,跨平台的方法来计算字体的渲染尺寸。

Javascript“解决方案”是检查div是否溢出,然后相应地提高其大小,类似

while (div.scrollHeight >= div.offsetHeight) {
    div.style.height = (parseInt(fontSpan.style.fontSize) + 1) + 'px';
}