Javascript 如何根据文本';长度是多少?
我有一个固定的宽度和高度DIV,我需要把文本放在里面。 问题是,这个文本可以有不同的长度(字母),所以一旦溢出,我不介意缩小它的大小 但是我怎么能做到呢Javascript 如何根据文本';长度是多少?,javascript,asp.net,jquery,html,fonts,Javascript,Asp.net,Jquery,Html,Fonts,我有一个固定的宽度和高度DIV,我需要把文本放在里面。 问题是,这个文本可以有不同的长度(字母),所以一旦溢出,我不介意缩小它的大小 但是我怎么能做到呢 谢谢长话短说,你不能这么做,因为不同的平台和浏览器呈现不同的字体 而且,没有跨浏览器、跨平台的方法来计算字体的渲染尺寸 Javascript的“解决方案”是检查div是否溢出,然后相应地增大其大小,如 while (div.scrollHeight >= div.offsetHeight) { div.style.height =
谢谢长话短说,你不能这么做,因为不同的平台和浏览器呈现不同的字体 而且,没有跨浏览器、跨平台的方法来计算字体的渲染尺寸 Javascript的“解决方案”是检查
div
是否溢出,然后相应地增大其大小,如
while (div.scrollHeight >= div.offsetHeight) {
div.style.height = (parseInt(fontSpan.style.fontSize) + 1) + 'px';
}
如果您以现代浏览器为目标,则可以使用
window.getComputedStyle
。它返回应用于元素的所有真实样式特性的集合 分配文本时,您可以获取其大小并将其与div的大小进行比较,然后减小或增大字体大小并再次测量。
在几个循环中,您应该可以获取div中的文本
这里有一个描述:最好让div溢出,并提供一个滚动条。我不能-这应该是一个按钮将文本缩短并放入div中。您可以检查字符数是否超过特定数量,然后剪切文本并显示。这看起来不太好,因为不同的字母有不同的大小。但是,我仍然不知道在浏览器中呈现的长度是多少…不,我建议进行字符计数检查。fontSpan.style.fontSize=(parseInt(fontSpan.style.fontSize)+1)+“px”;因为它的字体大小:-)而不是DIV的高度。很酷的解决方案!我喜欢。