js获取元素高度比较
网页可见区域宽: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.html和http://blog.sina.com.cn/s/blog_51048da70101djp5.html整理得来
js获取元素高度比较相关推荐
- 原生js获取元素高度
原生js获取元素高度 <div id='container'></div> let dom = document.getElementById('contanier')dom. ...
- Vue.js 获取元素高度的方法【记录】
Vue.js获取下面div的height: <div ref="element"></div> 1.获取高度值:(内容高+padding+边框) let h ...
- js 获取 元素高度
//顶部元素高度 this.$nextTick 延迟到 dom 渲染更新之后 getTitleHeight() { this.$nextTick(function () { this.conten ...
- JS获取元素高度宽度的问题
offset....client....scroll.. 这三类属性的问题,总是混淆,现归纳总结如下: 大体上我是这样理解的: 1.client...属性(clientWidth.clientHeig ...
- 原生js——无法获取元素高度的的问题
原生js--无法获取元素高度的的问题 今天遇到了xxx.style.width无法获取元素宽度的问题,原来一直没有注意到这个小细节: 1)如果width:150px:是写在 css 样式表(外链式)里 ...
- JS获取元素的大小(高度和宽度)
JS获取元素的大小(高度和宽度) 在 JavaScript中,使用下面 3 组属性可以获取元素的高度和宽度.如表所示. 元素尺寸属性 说明 clientWidth 获取元素可视部分的宽度,即 CSS ...
- 原生js获取html元素高度,原生JS获取元素宽高实践详解
开篇的话 任何不是亲身实践中求得的知识,都不是属于你的. 任何求得的知识不去时常温习运用,也不是属于你的. 记录由来 在做个上拉广告功能中遇到了一个"理所当然"觉得对的用法,慢慢才 ...
- js 获取元素位置和大小_js 位置_Js宽度高度(详解)
一.js 获取元素的位置和大小----只读属性 1.元素的大小和位置 1.可视大小和位置 clientLeft,clientTop,clientWidth,clientHeight clientLef ...
- JS获取元素在页面的位置
JS获取元素的offsetTop,offsetLeft等属性 obj.clientWidth //获取元素的宽度(width+padding) obj.clientHeight //元素的高度 obj ...
最新文章
- Android 友盟分享躺过的几个坑,大坑,坑爹啊
- 【Linux系统编程】Linux信号列表
- python怎么清空屏幕_python如何清屏
- 办大额信用卡致胜一招
- 【sqlite常用操作SQL语句】
- 基于Flask+Nginx+uWSGI实现CentOS服务端模型部署及预加载
- 【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)
- Mozilla 发布新 Firefox 用户信息反跟踪策略
- 情感分析技术在美团推荐系统中的探索与应用
- mysql安装排错-解决1
- 书店管理系统(C++初学者友好版)
- java检查文件的编码格式
- oracle导出数据只能9999,批量快速的导入导出Oracle的数据
- Matlab笔记之符号运算中的矩阵转置
- 如何评价 APICloud ?
- Linux企业运维篇——git+gitlab+jenkins+docker构成持续集成环境
- loj10155:数字转换:树的直径问题
- pip 常用命令及控制台怎么查看python 及pip 和已安装包版本号
- Vue组件封装 ——button组件
- IPETRONIK电动汽车热管理方案
热门文章
- JAVA 最常用实用的正则表达式校验
- 《勇气》(courageous)—随感
- tf::transformPose,tf::Transform,tf::Stamped,tf::Pose用法
- VC6 下 libpng 库的编译与初步使用以及压缩与解压缩
- Docker镜像、容器操作
- ofo遭遇线上退押金挤兑潮:排队退款人数已超上千万人
- 关于javaSSM框架优点介绍
- 文思创新面试总结(2)
- 【Linux】Linux服务器时区设置和时间同步
- 鸿蒙os骁龙845,800块的骁龙845旗舰?双扬声器+线性马达,这才叫真香?