来源: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获取视窗大小的区别相关推荐

  1. jQuery-$(document).ready和$(window).load有什么区别?

    本文翻译自:jQuery - What are differences between $(document).ready and $(window).load? What are differenc ...

  2. 用$(document).on(‘click‘,‘.dete‘.function(e){})获取到元素本身

    用$(document).on('click','.dete'.function(e){})获取到元素本身 我在项目中用这个更多的是因为要监听动态创建元素,还有要监听到元素本身,我一开始用e.targ ...

  3. document.referrer和history.go(-1)退回上一页区别

    javascript:location=document.referrer;和javascript:history.go(-1);区别: 返回上一页,在PC端我们可以使用:history.go(-1) ...

  4. window 获取文件大小

    window 获取文件大小 要获取文件大小,可以使用以下代码: import os# 文件路径 file_path = "example.txt"# 获取文件大小(单位为字节) f ...

  5. window 获取文件md5值dos 脚本

    window 获取文件md5值dos 脚本 将下面脚本内容写入md5sum.bat中: @echo offrem path: %UserProfile%\AppData\Roaming\Microso ...

  6. JS获取网页大小和鼠标当前坐标

    JS获取网页大小和鼠标当前坐标 var s = ""; s += "/r/n网页可见区域宽:"+ document.body.clientWidth; s += ...

  7. 用 Javascript 获取页面大小、窗口大小和滚动条位置

    一,window对象的属性scrollMaxX,scrollMaxY: 传回的是可卷动的最大长度,其值为整数,单位为像素.限Firefox使用. 文件的全宽 = innerWidth + scroll ...

  8. 使用jQuery获取视口大小

    本文翻译自:Using jQuery To Get Size of Viewport How do I use jQuery to determine the size of the browser ...

  9. 前端js获取图片大小 扩展名_前端获取图片存储大小的方法

    1利用input元素获取 如果是input元素 var file=document.getElementById('myinput'); var fileData = file.files[0]; v ...

最新文章

  1. Servlet线程安全2
  2. Ueditor百度编辑器中的 setContent()方法的使用
  3. 解决:设置中打开蓝牙,測试机不会自己主动搜索设备
  4. 限定通配符和非限定通配符_为什么我不信任通配符以及为什么我们仍然需要通配符...
  5. C语言数组、字符与字符串笔记
  6. python新手入门到放弃_python萌新:从零基础入门到放弃
  7. Win10技巧:如何确定电脑是否适用Hyper-V虚拟机?
  8. kafka 拉取的数据排序_Kafka 源码解析之 Consumer Poll 模型(七)
  9. 最新破解无线网络破解教程,一键破解wpa/wpa2密码软件下载。破解不用抓包不用跑字典。快速破解wpa/wpa2密码...
  10. python实现ftp_python实现ftp(客户端)
  11. 室内设计数据手册pdf_室内设计资料集pdf下载-室内设计资料集电子版pdf高清扫描版-东坡下载...
  12. Python实现离散Radon变换
  13. 海洋cms宝塔定时linux,海洋cms设置宝塔自动采集教程
  14. 【云原生 | Kubernetes 系列】1个POD2个container实现Wordpress K8s部署
  15. 磨金石教育摄影技能干货分享|近景拍摄技巧分析
  16. idea插件开发的时候找不到com.intellij.psi.PsiClass
  17. C语言实现实数和复数矩阵及其各种运算(二)
  18. 蓝桥杯单片机学习13——NE555方波发生器频率测量
  19. EDA软件_电路设计仿真软件比较
  20. 最新前端跨平台框架推荐,跨平台开发框架选择指南

热门文章

  1. l28n和开发版_Atmel之SAM4S Xplained开发板评测(二)
  2. rsa算法python_GitHub 热门:Python 算法大全,Star 超过 2 万
  3. abb机器人searchl报错_西门子PLC1200与ABB机器人通信
  4. iphone9发布_【60秒半导体新闻】消息称国外疫情爆发让苹果取消发布会 iPhone 9跳票/华为P40全家福:7种配色、陶瓷尊享版配豪华五摄...
  5. linux mint 主题切换,详解如何在 Linux Mint 中更换主题
  6. Spring框架学习笔记08:基于Java配置方式使用Spring MVC
  7. 【BZOJ2337】XOR和路径,概率期望DP+高斯消元
  8. [C++] C++标准中定义的实体(entity)/ 声明 / 定义
  9. Intel 64/x86_64/IA-32/x86处理器通用寄存器 (1) - 32位通用寄存器
  10. MySQL分优化之超大页查询