为流体/响应式设计调整优雅的文本解决方案的性能调整大小?

时间:2012-08-03 15:39:24

标签: javascript css fonts responsive-design media-queries

我找到以下JS解决方案,根据视口大小调整文本大小非常优雅:

https://stackoverflow.com/a/10295733/1318135

onresize=onload=function(){document.body.style.fontSize=window.innerWidth+"px"}

但是,有两个问题:

  1. 它依赖于调整视口大小。我想在首次加载页面时触发它,但在JS上是一个新手。

  2. 我的页面完全使用em值编码;这使用px。如何使用此功能调整默认em尺寸,然后会自动向下切换到页面上的其他每个元素?

  3. http://jsfiddle.net/hFNc7/

    谢谢!

2 个答案:

答案 0 :(得分:1)

您需要在body的{​​{1}}事件中运行该代码。最简单的方法是通过load属性直接设置它:

onload

它的作用:

  1. 创建一个能够动态设置字体大小的函数。
  2. 将函数设置为<body onload="var f = function () { document.body.style.fontSize = 0.2 * window.innerWidth + 'px'; }; window.onresize = f; f();"> 事件侦听器。
  3. 立即执行该功能。
  4. PS:有更优雅的方式来写这个,但是既然是你的新手,最好先用更简单的记法开始。

答案 1 :(得分:1)

  1. 查看其他答案(或将http://jsfiddle.net/cjzEK/1/放在页面底部)

  2. em本身并不是一个尺寸。这是一个不同的写作百分比。 em适用于你的唯一方法是因为在浏览器中设置了1个基本字体大小(或者也可能是重置样式表)。浏览器中通常的字体基本大小为16px。那么这个解决方案的作用是通过将基础大小添加到正文来改变基础大小(将其添加到html可能会更好)。

  3. e.g。没有重置的p{font-size:1em;}将是16px。 1.5em将是24px。