【发布时间】:2012-03-22 13:35:30
【问题描述】:
我在 javascript 中调整字体的大小,直到它淹没它所在的 div。我这样做是因为网站的布局是流畅的,因此 div 的大小会发生变化,我想相应地匹配字体。
这是一个简单的循环:
while (!overflow(div)) {
fontSize += 1;
div.css("font-size", fontSize + "%");
}
奇怪的是,只有 IE 才能正确。
Chrome、Firefox 和 Opera 不会线性调整字体大小,而是以不规则的间隔调整。
例如Chrome 只会将字体大小调整为 108%、120% 和 129%,似乎忽略了介于两者之间的所有值。 Moz 和 Opera 有自己的间隔(那个间隔更小),所以要弄清楚那里发生了什么并不容易。
有人有想法吗?
【问题讨论】:
-
我猜 while 循环的运行速度比 DOM 更新发生的速度快。只是一个疯狂的猜测。
-
你的溢出函数是什么?
-
function overflow(obj) { return (obj[0].scrollHeight / obj[0].clientHeight > 1) ? true : false; } -
两年后,我在所有其他浏览器中仍然遇到这个问题。
标签: javascript css browser fonts resize