document.body、document.documentElement和window获取视窗大小的区别
来源:http://www.ido321.com/906.html
在w3school关于window对象的介绍中,介绍了获取浏览器窗口大小的三种方法(浏览器的视口,不包括工具栏和滚动条)。
对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
- window.innerHeight – 浏览器窗口的内部高度
- window.innerWidth – 浏览器窗口的内部宽度
对于 Internet Explorer 8、7、6、5:
- document.documentElement.clientHeight
- document.documentElement.clientWidth
或者
- document.body.clientHeight
- document.body.clientWidth
实用的 JavaScript 方案(涵盖所有浏览器):
1: var w=window.innerWidth
2: || document.documentElement.clientWidth
3: || document.body.clientWidth;
4:
5: var h=window.innerHeight
6: || document.documentElement.clientHeight
7: || document.body.clientHeight;
返回的都是数值,不带单位。这是共同点。好,接下来,看看他们的区别
1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2: <html xmlns="http://www.w3.org/1999/xhtml">
3: <head>
4: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5: <title>无标题文档</title>
6: <style type="text/css">
7: .test
8: {
9: width:100px;
10: height:100px;
11: background:red;
12: }
13: #data
14: {
15: width:200px;
16: height:100px;
17: }
18: </style>
19: </head>
20:
21: <body>
22: <div class="test">test</div>
23: <div id="data"></div>
24: </body>
25: </html>
js代码
1: var w=window.innerWidth
2: || document.documentElement.clientWidth
3: || document.body.clientWidth;
4: var h=window.innerHeight
5: || document.documentElement.clientHeight
6: || document.body.clientHeight;
7:
8: var data = document.getElementById('data');
9: data.innerHTML = "正常文档流情况:"+"<br/>";
10: data.innerHTML += "w="+w+"<br/>";
11: data.innerHTML += "h="+h+"<br/>";
12: data.innerHTML += "document.body.clientHeight="+document.body.clientHeight+"<br/>";
13: data.innerHTML += "document.body.clientWidth="+document.body.clientWidth+"<br/>";
14: data.innerHTML += "window.innerWidth="+window.innerWidth+"<br/>";
15: data.innerHTML += "window.innerHeight="+window.innerHeight+"<br/>";
16: data.innerHTML += "document.documentElement.clientHeight="+document.documentElement.clientHeight+"<br/>";
17: data.innerHTML += "document.documentElement.clientWidth="+document.documentElement.clientWidth+"<br/>";
看看结果输出:(ps:电脑分辨率是1366*768)
给.test添加左浮动:float:left,让其脱离正常文档流,看看结果:
除了document.body.clientHeight变成了100,其他基本保持不变。
但是给.data也添加float:left,在对应的浏览器中,document.body.clientHeight变成了0,其他基本保持不变。不信可以自己试试。
关于JavaScript中的*top、*left、*width、*Height详解:http://www.ido321.com/911.html
转载于:https://www.cnblogs.com/ido321/p/4005466.html
document.body、document.documentElement和window获取视窗大小的区别相关推荐
- jQuery-$(document).ready和$(window).load有什么区别?
本文翻译自:jQuery - What are differences between $(document).ready and $(window).load? What are differenc ...
- 用$(document).on(‘click‘,‘.dete‘.function(e){})获取到元素本身
用$(document).on('click','.dete'.function(e){})获取到元素本身 我在项目中用这个更多的是因为要监听动态创建元素,还有要监听到元素本身,我一开始用e.targ ...
- document.referrer和history.go(-1)退回上一页区别
javascript:location=document.referrer;和javascript:history.go(-1);区别: 返回上一页,在PC端我们可以使用:history.go(-1) ...
- window 获取文件大小
window 获取文件大小 要获取文件大小,可以使用以下代码: import os# 文件路径 file_path = "example.txt"# 获取文件大小(单位为字节) f ...
- window 获取文件md5值dos 脚本
window 获取文件md5值dos 脚本 将下面脚本内容写入md5sum.bat中: @echo offrem path: %UserProfile%\AppData\Roaming\Microso ...
- JS获取网页大小和鼠标当前坐标
JS获取网页大小和鼠标当前坐标 var s = ""; s += "/r/n网页可见区域宽:"+ document.body.clientWidth; s += ...
- 用 Javascript 获取页面大小、窗口大小和滚动条位置
一,window对象的属性scrollMaxX,scrollMaxY: 传回的是可卷动的最大长度,其值为整数,单位为像素.限Firefox使用. 文件的全宽 = innerWidth + scroll ...
- 使用jQuery获取视口大小
本文翻译自:Using jQuery To Get Size of Viewport How do I use jQuery to determine the size of the browser ...
- 前端js获取图片大小 扩展名_前端获取图片存储大小的方法
1利用input元素获取 如果是input元素 var file=document.getElementById('myinput'); var fileData = file.files[0]; v ...
最新文章
- Servlet线程安全2
- Ueditor百度编辑器中的 setContent()方法的使用
- 解决:设置中打开蓝牙,測试机不会自己主动搜索设备
- 限定通配符和非限定通配符_为什么我不信任通配符以及为什么我们仍然需要通配符...
- C语言数组、字符与字符串笔记
- python新手入门到放弃_python萌新:从零基础入门到放弃
- Win10技巧:如何确定电脑是否适用Hyper-V虚拟机?
- kafka 拉取的数据排序_Kafka 源码解析之 Consumer Poll 模型(七)
- 最新破解无线网络破解教程,一键破解wpa/wpa2密码软件下载。破解不用抓包不用跑字典。快速破解wpa/wpa2密码...
- python实现ftp_python实现ftp(客户端)
- 室内设计数据手册pdf_室内设计资料集pdf下载-室内设计资料集电子版pdf高清扫描版-东坡下载...
- Python实现离散Radon变换
- 海洋cms宝塔定时linux,海洋cms设置宝塔自动采集教程
- 【云原生 | Kubernetes 系列】1个POD2个container实现Wordpress K8s部署
- 磨金石教育摄影技能干货分享|近景拍摄技巧分析
- idea插件开发的时候找不到com.intellij.psi.PsiClass
- C语言实现实数和复数矩阵及其各种运算(二)
- 蓝桥杯单片机学习13——NE555方波发生器频率测量
- EDA软件_电路设计仿真软件比较
- 最新前端跨平台框架推荐,跨平台开发框架选择指南
热门文章
- l28n和开发版_Atmel之SAM4S Xplained开发板评测(二)
- rsa算法python_GitHub 热门:Python 算法大全,Star 超过 2 万
- abb机器人searchl报错_西门子PLC1200与ABB机器人通信
- iphone9发布_【60秒半导体新闻】消息称国外疫情爆发让苹果取消发布会 iPhone 9跳票/华为P40全家福:7种配色、陶瓷尊享版配豪华五摄...
- linux mint 主题切换,详解如何在 Linux Mint 中更换主题
- Spring框架学习笔记08:基于Java配置方式使用Spring MVC
- 【BZOJ2337】XOR和路径,概率期望DP+高斯消元
- [C++] C++标准中定义的实体(entity)/ 声明 / 定义
- Intel 64/x86_64/IA-32/x86处理器通用寄存器 (1) - 32位通用寄存器
- MySQL分优化之超大页查询