0

我正在尝试创建一个站点范围的字体大小调整器,但大多数实现似乎都希望我通过 id 或类来定位元素,而不是站点范围。

我试图通过设置我的页面以这个 CSS 开头来完成我的任务:

  • html = 83%
  • 正文,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,p,blockquote,th,td 等... = 1em

然后,我有一些 jquery 可以获取当前应用的字体大小,增加它并重新应用它。

但它不适用于 IE8 或 IE7。(震惊)

var currentFontSize = $('html').css('font-size');
var currentFontSizeNum = parseFloat(currentFontSize, 10);
var newFontSize = currentFontSizeNum*1.05;
$("html").css('cssText', 'font-size: ' + newFontSize + 'px !important');

如果我 console.log out 这些值,它在那些浏览器中计算得很好,但在这些浏览器中似乎有一些关于相对字体大小的东西。我还尝试将所有内容重置为 100%,而不是 1em,但这也不起作用。

示例jsfiddle(但此站点不适用于 ie8 或更低版本.....)

4

2 回答 2

1

您正在应用没有任何单位的大小。添加px到大小:

$('html').css('font-size', newFontSize + 'px');

旁注:该parseFloat函数不采用任何基数参数:

var currentFontSizeNum = parseFloat(currentFontSize);
于 2013-04-12T16:00:06.350 回答
0

我无法让它在 IE8 和 IE7 中工作,所以我更改了我的代码以将一个类应用于 html 对象(body 也可以工作)。然后,在 IE8 和 IE7 css 文件中,我有样式来监听这些类并相应地调整它们的大小。

于 2013-05-15T14:37:26.253 回答