网页可见区域宽:document.body.clientWidth(不包括滚动条)

网页可见区域高:document.body.clientHeight(不包括滚动条)

网页可见区域宽:document.body.offsetWidth (包括边线和滚动条的宽)

网页可见区域高:document.body.offsetHeight(包括边线的宽)

网页正文全文宽:document.body.scrollWidth

网页正文全文高:document.body.scrollHeight

网页被卷去的高(ff):document.body.scrollTop

网页被卷去的高(ie):document.documentElement.scrollTop

网页被卷去的左:document.body.scrollLeft

网页正文部分上:window.screenTop

网页正文部分左:window.screenLeft

屏幕分辨率的高:window.screen.height

屏幕分辨率的宽:window.screen.width

屏幕可用工作区高度:window.screen.availHeight

屏幕可用工作区宽度:window.screen.availWidth

你的屏幕设置是:window.screen.colorDepth  位彩色

你的屏幕设置:window.screen.deviceXDPI  像素/英寸

window的页面可视部分实际高度(ff):window.innerHeight



某个元素的宽度:obj.offsetWidth

某个元素的高度:obj.offsetHeight

某个元素的上边界到body最顶部的距离:obj.offsetTop(在元素的包含元素不含滚动条的情况下)

某个元素的左边界到body最左边的距离:obj.offsetLeft(在元素的包含元素不含滚动条的情况下)

返回当前元素的上边界到它的包含元素的上边界的偏移量:obj.offsetTop(在元素的包含元素含滚动条的情况下)

返回当前元素的左边界到它的包含元素的左边界的偏移量:obj.offsetLeft(在元素的包含元素含滚动条的情况下)



scrollTop, scrollLeft

设置或返回已经滚动到元素的左边界或上边界的像素数。只有在元素有滚动条的时候,例如,元素的 CSS overflow 属性设置为 auto 的时候,这些像素才有用。这些属性也只在文档的 <body> 或 <html> 标记上定义(这和浏览器有关),并且一起来制定滚动文档的位置。注意,这些属性并不会指定一个 <iframe> 标记的滚动量。这是非标准的但却得到很好支持的属性


在我本地测试当中:

在IE、FireFox、Opera下都可以使用

document.body.clientWidth

document.body.clientHeight

即可获得,很简单,很方便。

而在公司项目当中:

Opera仍然使用

document.body.clientWidth

document.body.clientHeight

可是IE和FireFox则使用

document.documentElement.clientWidth

document.documentElement.clientHeight

原来是W3C的标准在作怪啊

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果在页面中添加这行标记的话



在IE中:

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

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

document.documentElement.clientWidth ==> 可见区域宽度

document.documentElement.clientHeight ==> 可见区域高度

在FireFox中:

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

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

document.documentElement.clientWidth ==> 可见区域宽度

document.documentElement.clientHeight ==> 可见区域高度

?

在Opera中:

document.body.clientWidth ==> 可见区域宽度

document.body.clientHeight ==> 可见区域高度

document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)

document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)

而如果没有定义W3C的标准,则

IE为:

document.documentElement.clientWidth ==> 0

document.documentElement.clientHeight ==> 0

FireFox为:

document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)

document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)

Opera为:

document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)

document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)

真是一件麻烦事情,其实就开发来看,宁可少一些对象和方法,不使用最新的标准要方便许多啊。



有时候需要取页面的底部, 就会用到document.body.clientHeight , 在HTML 标准中(这一句就能取到整个页面的高度, 不论body 的实际内容到底有多高, 例如, 1074*768 的分辨率, 页面最大化时, 这个高度约为720 , 即使页面上只有一句”hello world” , 也仍然取到720.



可是在XHTML中, 如果body 体中只有一行, 则document.body.clientHeight 只能取到那一行的高度, 约20px, 这时如何还想取到整个页面的高度, 就要用document.documentElement.clientHeight 来获取了.



原因是: 在HTML 中, body 是整个DOM 的根, 而在XHTML 中, document 才是根, body 不再是根, 所以取body 的属性时, 不能再取到整个页面的值.



区别新旧标准的行是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

前者指明该页面使用旧标准, 后者指明该页面使用新标准.



总结:

XHTML中用 document.documentElement.clientHeight 代替

document.body.clientHeight

本文由:http://www.blogjava.net/conans/articles/364566.htmlhttp://blog.sina.com.cn/s/blog_51048da70101djp5.html整理得来

js获取元素高度比较相关推荐

  1. 原生js获取元素高度

    原生js获取元素高度 <div id='container'></div> let dom = document.getElementById('contanier')dom. ...

  2. Vue.js 获取元素高度的方法【记录】

    Vue.js获取下面div的height: <div ref="element"></div> 1.获取高度值:(内容高+padding+边框) let h ...

  3. js 获取 元素高度

    //顶部元素高度   this.$nextTick 延迟到 dom 渲染更新之后 getTitleHeight() { this.$nextTick(function () { this.conten ...

  4. JS获取元素高度宽度的问题

    offset....client....scroll.. 这三类属性的问题,总是混淆,现归纳总结如下: 大体上我是这样理解的: 1.client...属性(clientWidth.clientHeig ...

  5. 原生js——无法获取元素高度的的问题

    原生js--无法获取元素高度的的问题 今天遇到了xxx.style.width无法获取元素宽度的问题,原来一直没有注意到这个小细节: 1)如果width:150px:是写在 css 样式表(外链式)里 ...

  6. JS获取元素的大小(高度和宽度)

    JS获取元素的大小(高度和宽度) 在 JavaScript中,使用下面 3 组属性可以获取元素的高度和宽度.如表所示. 元素尺寸属性 说明 clientWidth 获取元素可视部分的宽度,即 CSS ...

  7. 原生js获取html元素高度,原生JS获取元素宽高实践详解

    开篇的话 任何不是亲身实践中求得的知识,都不是属于你的. 任何求得的知识不去时常温习运用,也不是属于你的. 记录由来 在做个上拉广告功能中遇到了一个"理所当然"觉得对的用法,慢慢才 ...

  8. js 获取元素位置和大小_js 位置_Js宽度高度(详解)

    一.js 获取元素的位置和大小----只读属性 1.元素的大小和位置 1.可视大小和位置 clientLeft,clientTop,clientWidth,clientHeight clientLef ...

  9. JS获取元素在页面的位置

    JS获取元素的offsetTop,offsetLeft等属性 obj.clientWidth //获取元素的宽度(width+padding) obj.clientHeight //元素的高度 obj ...

最新文章

  1. Android 友盟分享躺过的几个坑,大坑,坑爹啊
  2. 【Linux系统编程】Linux信号列表
  3. python怎么清空屏幕_python如何清屏
  4. 办大额信用卡致胜一招
  5. 【sqlite常用操作SQL语句】
  6. 基于Flask+Nginx+uWSGI实现CentOS服务端模型部署及预加载
  7. 【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)
  8. Mozilla 发布新 Firefox 用户信息反跟踪策略
  9. 情感分析技术在美团推荐系统中的探索与应用
  10. mysql安装排错-解决1
  11. 书店管理系统(C++初学者友好版)
  12. java检查文件的编码格式
  13. oracle导出数据只能9999,批量快速的导入导出Oracle的数据
  14. Matlab笔记之符号运算中的矩阵转置
  15. 如何评价 APICloud ?
  16. Linux企业运维篇——git+gitlab+jenkins+docker构成持续集成环境
  17. loj10155:数字转换:树的直径问题
  18. pip 常用命令及控制台怎么查看python 及pip 和已安装包版本号
  19. Vue组件封装 ——button组件
  20. IPETRONIK电动汽车热管理方案

热门文章

  1. JAVA 最常用实用的正则表达式校验
  2. 《勇气》(courageous)—随感
  3. tf::transformPose,tf::Transform,tf::Stamped,tf::Pose用法
  4. VC6 下 libpng 库的编译与初步使用以及压缩与解压缩
  5. Docker镜像、容器操作
  6. ofo遭遇线上退押金挤兑潮:排队退款人数已超上千万人
  7. 关于javaSSM框架优点介绍
  8. 文思创新面试总结(2)
  9. 【Linux】Linux服务器时区设置和时间同步
  10. 鸿蒙os骁龙845,800块的骁龙845旗舰?双扬声器+线性马达,这才叫真香?