如何设置相对于屏幕大小的正文的字体大小

时间:2013-11-06 14:19:12

标签: javascript html css

好吧,我目前正在做一些事情,但现在我正在构建一个移动版本,对于那个移动版本,我想设置相对于窗口的文本大小。我试着这样做:

// Getting the right font-size
var viewportWidth  = document.documentElement.clientWidth;
var viewportHeight = document.documentElement.clientHeight;
document.getElementsByTagName("body")[0].style.fontSize = (viewportHeight / 10);

但由于某种原因,它让我告诉我:

Uncaught TypeError: cannot read 'style' of type undefined.

你们可以帮我解决这个问题,还是有另一种方式(mayby with css)来解决我的问题。

感谢。

3 个答案:

答案 0 :(得分:1)

您的错误消息告诉您document.getElementsByTagName("body")[0]为您提供了undefined。因此,在脚本运行时没有body元素(因此您无法更改其样式)。

或者:

  • 将其移出head
  • 将其转换为函数可以在读取/加载文档时调用/ etc

此外,CSS font-size属性需要长度,长度需要单位。

答案 1 :(得分:0)

尝试document.getElementsByTagName(“body”)[0] .style.fontSize =(viewportHeight / 10)+“px”;

或您想要使用的任何其他单位。

另外看看这里可能是你正在寻找的东西

http://snook.ca/archives/html_and_css/vm-vh-units

http://dev.opera.com/articles/view/css-viewport-units/

答案 2 :(得分:0)

试试这个:

document.addEventListener('load', function(){
   var viewportWidth  = document.documentElement.clientWidth;
   var viewportHeight = document.documentElement.clientHeight;
   document.body.style.fontSize = (viewportHeight / 10);
}, false);