专栏首页李维亮的博客document.body.clientHeight 和 document.documentElement.clientHeight 的区别

document.body.clientHeight 和 document.documentElement.clientHeight 的区别

1、javascript中的 document.body.clientHeight 和 document.documentElement.clientHeight 的区别

这个问题是我在整合新的美工页面的时候发现的,在整合页面的时候菜单页面始终显示不出来。但是查看源代码,里面又已经打印出来了所有的菜单。唯一的解释就是js的问题了。用火狐firebug测试,发现其中一个取得页面高度的变量 bodyHeight 一直是0。就是因为他是0,所以菜单才显示不出来。

而取得bodyHeight 高度的语句是 var bodyHeight = document.documentElement.clientHeight;

于是在网上查找相关的资料,结合美工页面和程序的页面对比。

document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度

程序页面里面少了一句

我在ie下做了一下测试,下面是测试代码

<html xmlns=”http://www.w3.org/1999/xhtml”>
 <head>
  <title> New Document </title>
  <script language="JavaScript">
  <!--
  function a(){
        document.getElementById("bodyheight").innerText = document.body.clientHeight;
        document.getElementById("documentheight").innerText = document.documentElement.clientHeight;
    }
  //-->
  </script>
 </head>

 <body>
    <p>
        <a href="javascript:a()">click here</a>
        <br/>
            document.body.clientHeight = <span id="bodyheight"></span> px
        <br/>
            document.documentElement.clientHeight = <span id="documentheight"></span> px
    </p>
 </body>
</html>

测试结果:

当页面上有DOCTYPE的时候,值为

document.body.clientHeight = 54px document.documentElement.clientHeight = 729px

当没有DOCTYPE时

document.body.clientHeight = 729px document.documentElement.clientHeight = 0px

可以看出,document.body.clientHeight 和 document.documentElement.clientHeight 的区别。

就是因为少了DOCTYPE 所以 document.documentElement.clientHeight 的值为0。而换成 document.body.clientHeight就好了。

为什么少了DOCTYPE,document.documentElement.clientHeight会为0呢?

这是W3C标准的支持。在网上查到一篇文章那位作者有详细的解释 http://hi.baidu.com/bluedream_119/blog/item/dc377d4bef83aff783025c68.html

2、关于tomcat服务器的路径大小写问题

在整合美工页面的过程中,由于美工在引用js和css样式的时候路径时而大写,时而小写。在windows用ie直接打开都能浏览,页面显示正常。

但是当我整合到项目里面以后,架设到tomcat中的时候,页面样式全部消失。找了半天原因未果,一个同事说是不是因为路径大小写的原因,一试,果然。

记下,以后注意路径的大小写问题。貌似tomcat,websphere都对路径的大小写验证蛮严格的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • js获得浏览器高度和宽度 参数

    document.documentElement.clientHeight -->浏览器的高度

    botkenni
  • js 获取浏览器高度和宽度值(多浏览器)

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==>...

    似水的流年
  • js 获取浏览器高度和宽度值(多浏览器)

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BOD...

    似水的流年
  • js 获取浏览器高度和宽度值(多浏览器)

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对...

    似水的流年
  • javascript 获取多种主流浏览器显示页面高度(转)

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对...

    lin_zone
  • 仿qq空间好友动态刷新

    在qq空间里有好多网页特效值得初学html和js的去学习,今天我来介绍一种特效。我们在上qq空间是都会发现,当向下滚动鼠标,使滚动条到达最低端的时候,好友动态会...

    OECOM
  • js获取网页屏幕可视区域高度

    document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 ...

    kirin
  • document.compatMode属性介绍

    之前不了解这个属性,今天总结一下,以后可能会用到。 对于document.compatMode,很多朋友可能都根我一样很少接触,知道他的存在却不清楚他的用途。今...

    吴裕超
  • JQuery iframe宽高度自适应浏览器窗口大小的解决方法

    https://gitee.com/ishouke/front_end_plugin/blob/master/jquery-3.2.1.min.js

    授客
  • 获取可视区域高度赋值给div(解决document.body.clientHeight的返回值为0的问题)

    获取可视区域高度赋值给div(解决document.body.clientHeight的返回值为0的问题) 设置html,body{height:100%} ...

    用户1212940
  • 获取可视区域高度赋值给div(解决document.body.clientHeight的返回值为0的问题)

    获取可视区域高度赋值给div(解决document.body.clientHeight的返回值为0的问题) 设置html,body{height:100%} ...

    用户1212940
  • 跨浏览器获取不同环境的window窗口宽度和高度

    IE9+、Firefox、Safari、Opera和Chrome均为此提供了4个属性: innerWidth 、 innerHeight 、 outerWidt...

    德顺
  • 干货丨JS 经典实例收集整理

    一、跨浏览器事件 跨浏览器添加事件 //跨浏览器添加事件    function addEvent(obj,type,fn){        if(obj.a...

    腾讯NEXT学位
  • 可能这些是你想要的H5软键盘兼容方案

    最近一段时间在做 H5 聊天项目,踩过其中一大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上。需求很明确,看似很简单,其实不然。从实验过一些...

    桃翁
  • 【H5】209-可能这些是你想要的H5软键盘兼容方案

    作者最近一段时间在做 H5 聊天项目,过程中踩过一个大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上。需求很明确,看似很简单,其实不然。作者...

    pingan8787
  • 移动端那些戳中你痛点的软键盘问题及解决方法

    在ios手机中,当页面中包含有输入框时,点击输入框,键盘弹起,会让页面中被fixed的元素失效。所以造成了底部吸底和顶部吸顶的元素错位的问题。下面的视频中就出现...

    wade
  • 第七节图片延迟加载

    河湾欢儿
  • 在线可视化编辑源码

    Youngxj
  • 浏览器中的几个高度

    载入首批数据,文档高度( $('html').height() == 2500px )

    Z4

扫码关注云+社区

领取腾讯云代金券