来源:http://www.ido321.com/906.html
在w3school关于window对象的介绍中,介绍了获取浏览器窗口大小的三种方法(浏览器的视口,不包括工具栏和滚动条)。
对于Internet Explorer、Chrome、Firefox、Opera 以及 Safari:
- window.innerHeight – 浏览器窗口的内部高度
- window.innerWidth – 浏览器窗口的内部宽度
- document.documentElement.clientHeight
- document.documentElement.clientWidth
- document.body.clientHeight
- document.body.clientWidth
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:
2:
3:
4:
5:无标题文档 - 锐客网
6:
7: .test
8: {
9:width:100px;
10:height:100px;
11:background:red;
12: }
13: #data
14: {
15:width:200px;
16:height:100px;
17: }
18:
19:
20:
21:
22:test
23:
24:
25:
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 = https://www.it610.com/article/document.getElementById('data');
9: data.innerHTML = "正常文档流情况:"+"
";
10: data.innerHTML += "w="+w+"
";
11: data.innerHTML += "h="+h+"
";
12: data.innerHTML += "document.body.clientHeight="+document.body.clientHeight+"
";
13: data.innerHTML += "document.body.clientWidth="+document.body.clientWidth+"
";
14: data.innerHTML += "window.innerWidth="+window.innerWidth+"
";
15: data.innerHTML += "window.innerHeight="+window.innerHeight+"
";
16: data.innerHTML += "document.documentElement.clientHeight="+document.documentElement.clientHeight+"
";
17: data.innerHTML += "document.documentElement.clientWidth="+document.documentElement.clientWidth+"
";
看看结果输出:(ps:电脑分辨率是1366*768)
文章图片
文章图片
文章图片
给.test添加左浮动:float:left,让其脱离正常文档流,看看结果:
文章图片
文章图片
文章图片
除了document.body.clientHeight变成了100,其他基本保持不变。
但是给.data也添加float:left,在对应的浏览器中,document.body.clientHeight变成了0,其他基本保持不变。不信可以自己试试。
【document.body、document.documentElement和window获取视窗大小的区别】关于JavaScript中的*top、*left、*width、*Height详解:http://www.ido321.com/911.html
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- javascript|javascript中的数据类型转换