document.documentElement 与document.boay 的区别

1.问题的 引发 重构InterActiveEditor,在 WebStorm中浏览可以进行Resize,打包到Eclipse中不能进行Resize
                        在WebStorm中document.documentElement.clientHeigh能够获取高度,
                        嵌套到portal中,
document.documentElement.clientHeigh 不能够获取到高度,是一个固定值
2.  引发问题 原因
            查看相关文档跟DTD有关
           页面具有 DTD,或者说指定了 DOCTYPE 时,使用 document.documentElement。
           页面不具有 DTD,或者说没有指定了 DOCTYPE,时,使用 document.body。


3.什么是DTD
        DTD
(Document Type Definition):文档类型定义:是一套为了进行程序间的数据交换而建立的关于标记符的语法规则:
       说白了也就是XML标记符的语法规则,是用来验证XML文件格式的验证机制,是XML的一个组成部分。
      全写
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
      可以写成
<!DOCTYPE html>

4.为什么使用 <!doctype html>
        
在写html的时候需要定义文档类型;如果没有定义,浏览器在渲染页面的时候会使用怪异模式;各个浏览器在怪异模式下对各个元素渲染是有差异的。
       
<!doctype html>是HTML5标准网页声明,如果网页开头没有定义DTD它,浏览器就会开启怪异模式(标准模式关闭)去解析网页。如果定义了它浏览器就会在严格模式(标准模式)下解析网页。
       
 IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式。
        
每个浏览器都有自己的方式来激活怪异模式。可查看这个清单:
http://hsivonen.iki.fi/doctype/
5.获取浏览器当前网页的渲染方式
     document.compatMode属性
        BackCompat:标准模式关闭。
        CSS1Compat:标准模式开启。
  
For example:
        当document.compatMode等于BackCompat时,浏览器客户区宽度是document.body.clientWidth;
        当document.compatMode等于CSS1Compat时,浏览器客户区宽度是document.documentElement.clientWidth。

         if (document.compatMode  ===  "BackCompat") {

               cWidth = document.body.clientWidth;
               cHeight = document.body.clientHeight;
               sWidth = document.body.scrollWidth;
               sHeight = document.body.scrollHeight;
               sLeft = document.body.scrollLeft;
               sTop = document.body.scrollTop;
         } else { //document.compatMode  ===  "CSS1Compat"
                cWidth = document.documentElement.clientWidth;
                cHeight = document.documentElement.clientHeight;
                sWidth = document.documentElement.scrollWidth;
                sHeight = document.documentElement.scrollHeight;
                sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
                sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
         }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值