1

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

// 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.

你们能帮我解决这个问题,还是有另一种方法(可能用css)来解决我的问题。

谢谢。

4

3 回答 3

1

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

任何一个:

  • 将其移出head
  • 把它变成一个函数可以在文档被读取/加载/等时调用

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

于 2013-11-06T14:25:05.300 回答
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/

于 2013-11-06T14:21:27.613 回答
0

试试这个:

document.addEventListener('load', function(){
   var viewportWidth  = document.documentElement.clientWidth;
   var viewportHeight = document.documentElement.clientHeight;
   document.body.style.fontSize = (viewportHeight / 10);
}, false);
于 2013-11-06T14:24:58.847 回答