Javascript JS字体大小调整在IE以外的浏览器中不起作用
我正在用javascript调整字体大小,直到它淹没它所在的div。我这样做是因为网站的布局是流动的,因此div的大小会发生变化,我希望相应地匹配字体 这是一个简单的循环: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不会线性调整字体大小,而是以不规则的间隔进行调整
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%。