Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何根据文本';长度是多少?_Javascript_Asp.net_Jquery_Html_Fonts - Fatal编程技术网

Javascript 如何根据文本';长度是多少?

Javascript 如何根据文本';长度是多少?,javascript,asp.net,jquery,html,fonts,Javascript,Asp.net,Jquery,Html,Fonts,我有一个固定的宽度和高度DIV,我需要把文本放在里面。 问题是,这个文本可以有不同的长度(字母),所以一旦溢出,我不介意缩小它的大小 但是我怎么能做到呢 谢谢长话短说,你不能这么做,因为不同的平台和浏览器呈现不同的字体 而且,没有跨浏览器、跨平台的方法来计算字体的渲染尺寸 Javascript的“解决方案”是检查div是否溢出,然后相应地增大其大小,如 while (div.scrollHeight >= div.offsetHeight) { div.style.height =

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

但是我怎么能做到呢


谢谢

长话短说,你不能这么做,因为不同的平台和浏览器呈现不同的字体

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

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的高度。很酷的解决方案!我喜欢。