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

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

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


[img]http://dl2.iteye.com/upload/attachment/0095/6096/453136c3-860d-351a-96a5-77e2bd7faeaa.jpg[/img]

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


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

经测试该方法可行。 如图


[img]http://dl2.iteye.com/upload/attachment/0095/6102/539577f8-0ab7-3c75-8792-063f443db7b1.jpg[/img]

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


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

[img]http://dl2.iteye.com/upload/attachment/0095/6106/a7b070fd-26a0-3bff-8485-55759f4694e8.jpg[/img]

网上查了一下,
[url]http://forums.asp.net/t/1058801.aspx?Why+do+clientHeight+and+offsetHeight+always+return+zero+[/url]
这个网站是这么设置的。
既然有人这么弄,那就先放心的使用了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值