document.body.clientHeight返回值为0的解决方案

使用HTML5 DOCTYPE,会出现document.body.clientHeight为0
网上查了一下, 貌似有很多个解决方案。

1. 使用document.documentElement.clientHeight获取。
当使用html5的时候,就会有documentElement在document下。




如上图所示 , 左边为chrome,右边为ie。
完全没办法兼容。。


2. 设置DOCTYPE为html4.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

经测试该方法可行。 如图




这种情况只要使用document.body.clientHeight就行了。
但是我想使用html5来作为文档类型。


3.  html5->  设置html,body{height:100%}
在使用html5文档类型的时候, 设置了html body的高度100%之后,两个浏览器就都能获取document.body.clientHeight了。



网上查了一下,
http://forums.asp.net/t/1058801.aspx?Why+do+clientHeight+and+offsetHeight+always+return+zero+
这个网站是这么设置的。
既然有人这么弄,那就先放心的使用了。

你可能感兴趣的:(html,html5)