问答详情
源自:9-19 网页尺寸scrollHeight

请问为什么document.body.scrollHeight高度为0

<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 


</head>

<body>

<script type="text/javascript">

var w = document.documentElement.scrollWidth;

var h = document.documentElement.scrollHeight;

var wb = document.body.scrollWidth;

var hb = document.body.scrollHeight;

document.write(w+"/"+h+"<br/>");

document.write(wb+"/"+hb);

</script>

</body>    

</html>

hb输出结果为0请问为什么呢?


提问者:鹿一思 2019-04-06 12:13

个回答

  • weixin_慕妹1030651
    2021-04-21 15:40:49

    <style>

            html, body {

            height: 100%; 

      

        }

        </style>

    样式设置下高度,就能得到正常的了

  • 鹿一思
    2019-04-08 12:06:40

    我试了一下scrollTop,我已经凌乱了,无论我用body还是documentElement,scrollTop都是0。

    不过照你说的我删掉了<!DOCTYPE>,scrollHeight确实不是0了,用body的scrollWidth和scrollHeight,与用documentElement的值完全相同了...这是一门玄学

  • 喵小沫
    2019-04-08 09:45:46

    最近写了一个拖动层的HTML页面,   需要获取滚动条当前的位置.

    于是我使用document.body.scrolltop获取y方向滚动的位置...奇怪的事情出现了! 无论滚动条怎么滚动, document.body.scrolltop竟然一直都是0!

    对比以前写的一个页面.发现区别很小. 旧页面却没有问题.这就怪了...

    我开始一点一点的排除,去掉多于的代码. 直到我去掉文档最顶部的

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

    页面此时才正常.

    原来是这行东西造成IE无法获取document.body.scrolltop!

    把顶部这两行删掉将可以了.但是为什么会这样呢?

    google一下,发现改成:

    document.body.scrollTop 
    要改成 
    document.documentElement.scrollTop