Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.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 JS字体大小调整在IE以外的浏览器中不起作用_Javascript_Css_Browser_Fonts_Resize - Fatal编程技术网

Javascript JS字体大小调整在IE以外的浏览器中不起作用

Javascript JS字体大小调整在IE以外的浏览器中不起作用,javascript,css,browser,fonts,resize,Javascript,Css,Browser,Fonts,Resize,我正在用javascript调整字体大小,直到它淹没它所在的div。我这样做是因为网站的布局是流动的,因此div的大小会发生变化,我希望相应地匹配字体 这是一个简单的循环: while (!overflow(div)) { fontSize += 1; div.css("font-size", fontSize + "%"); } 奇怪的是,只有IE做得对 Chrome、Firefox和Opera不会线性调整字体大小,而是以不规则的间隔进行调整

我正在用javascript调整字体大小,直到它淹没它所在的div。我这样做是因为网站的布局是流动的,因此div的大小会发生变化,我希望相应地匹配字体

这是一个简单的循环:

    while (!overflow(div)) {
        fontSize += 1;
        div.css("font-size", fontSize + "%");
    }
奇怪的是,只有IE做得对

Chrome、Firefox和Opera不会线性调整字体大小,而是以不规则的间隔进行调整

例如,Chrome只会将字体大小调整为108%、120%和129%,似乎忽略了两者之间的所有值。 Moz和Opera有自己的音程(小音程),所以不容易弄清楚那里发生了什么


有人有什么想法吗?

基于WebKit的浏览器和Firefox经过优化,可以交错和批量更新DOM,使页面呈现总体上更高效。其思想是,对DOM的多次连续更新很少需要单独的渲染,而只需要在最后进行一次渲染。但是,仍然有一种方法可以触发渲染。只需调用一个getter命令浏览器重新布局页面

o = div.offsetWidth;
在设置style属性后,在循环中添加该属性将在每次迭代中触发渲染


在Google工程师Tony Gentilcore的博客上,有许多方法和getter属性触发WebKit中的重新布局。

我猜while loop的运行速度比DOM更新的速度快。胡乱猜测。你的溢出函数是什么?
function overflow(obj){return(obj[0]。scrollHeight/obj[0]。clientHeight>1)?true:false;}
两年后,我仍然在所有其他浏览器中遇到这个问题。不,没有。没有效果。如果我等待,“差距”也会持续存在。比如说,我正在调整浏览器窗口的大小:IE在调整过程中很好地调整了字体,但是Chrome在大小之间跳跃,造成了间隙。我也可以在跳跃时暂停,然后在(例如)108%和120%之间曲折前进,而实际上应该只有1%或2%。