每次用JS获取页面的高宽时总都是相当的揪心,同一个属性在不同的浏览器或不同的W3C标准下所表示的意思都不尽相同。以下就针对页面的实际高宽和可见区域做个总结,以便大家查阅!
1.
在W3C标准的情况下
W3C标准页面,即在HTML代码头部加入
<!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高)
2.
在无W3C标准的情况下
即在HTML代码头部无
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
在IE中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 0
document.documentElement.clientHeight ==> 0
在FireFox中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
在Opera中:
document.body.clientWidth ==> 可见区域宽度
document.body.clientHeight ==> 可见区域高度
document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上Margin宽)
document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)
3.
附录 -
页面高宽的其他相关属性
<script>
var s = '';
s += "\r\n 网页可见区域宽:"+ document.body.clientWidth;
s += "\r\n 网页可见区域高:"+ document.body.clientHeight;
s += "\r\n 网页可见区域宽:"+ document.body.offsetWidth + " (包括边线和滚动条的宽)";
s += "\r\n 网页可见区域高:"+ document.body.offsetHeight + " (包括边线的宽)";
s += "\r\n 网页正文全文宽:"+ document.body.scrollWidth;
s += "\r\n 网页正文全文高:"+ document.body.scrollHeight;
s += "\r\n 网页被卷去的高(ff):"+
document.body.scrollTop;
s += "\r\n 网页被卷去的高(ie):"+
document.documentElement.scrollTop;
s += "\r\n 网页被卷去的左:"+ document.body.scrollLeft;
s += "\r\n 网页正文部分上:"+ window.screenTop;
s += "\r\n 网页正文部分左:"+ window.screenLeft;
s += "\r\n 屏幕分辨率的高:"+ window.screen.height;
s += "\r\n 屏幕分辨率的宽:"+ window.screen.width;
s += "\r\n 屏幕可用工作区高度:"+ window.screen.availHeight;
s += "\r\n 屏幕可用工作区宽度:"+ window.screen.availWidth;
s += "\r\n 你的屏幕设置是 "+ window.screen.colorDepth +"
位彩色";
s += "\r\n 你的屏幕设置 "+ window.screen.deviceXDPI +"
像素/英寸";
alert(s);
</script>
相关推荐
### HTML:scrollLeft, scrollWidth, clientWidth, offsetWidth 完全详解 #### 一、scrollHeight 和 scrollWidth **scrollHeight** 和 **scrollWidth** 分别用来获取一个元素的滚动高度和滚动宽度。 - **...
总结来说,offsetHeight和offsetWidth关注的是元素的边界,而clientHeight和clientWidth关注的是元素内容的大小,scrollHeight和scrollWidth关注的是元素内容的实际大小。理解这些概念,对于编写符合布局需求的CSS...
在软件开发中,特别是在Web开发领域,理解和使用`scrollLeft`、`scrollTop`以及相关的DOM元素属性至关重要。这些属性主要用于处理网页元素的滚动位置和尺寸,对于创建动态、响应式的用户界面有着重要的作用。 首先...
- 使用 `event.clientX` 和 `event.clientY` 获取鼠标相对于视口的位置,但若想得到相对于整个文档的位置,则需加上 `document.documentElement.scrollTop` 或 `document.documentElement.scrollLeft`。 ```...
总之,理解并熟练运用`offsetWidth`、`clientWidth`、`innerWidth`以及相关属性,能帮助开发者更好地操控DOM元素,实现丰富的网页交互功能。在编写JavaScript代码时,根据具体需求选择合适的属性,可以提高代码的...
此时,我们可以使用`offsetHeight`和`offsetWidth`来获取容器的完整尺寸,而使用`clientHeight`和`clientWidth`来获取容器的实际可视区域大小。同时,通过`scrollHeight`和`scrollWidth`我们可以知道容器中所有内容...
需要注意的是,CSS中的margin属性与clientWidth、offsetWidth、clientHeight、offsetHeight等属性无关,因为margin表示的是元素外部的空间,而不影响元素本身的尺寸。 假设有一个HTML元素obj,它具有offsetTop和...
本文将详细介绍`clientWidth`、`clientHeight`、`scrollWidth`、`scrollHeight`、`offsetWidth`、`offsetHeight`等属性及其应用场景。 #### `clientWidth` 和 `clientHeight` - **定义**:`clientWidth`用于获取...
} else if (newY + this.offsetHeight > clientHeight) { newY = clientHeight - this.offsetHeight; newScrollTop = Math.min(newScrollTop + newY, document.documentElement.scrollHeight - clientHeight); } ...
但需要注意的是,对于IE5.5及更高版本,需要特别处理`document.body.scrollLeft`和`document.documentElement.scrollLeft`,以及`document.body.scrollTop`和`document.documentElement.scrollTop`,以确保在所有...
documentElement.scrollTop + (documentElement.clientHeight - this.offsetHeight) / 2 : document.body.scrollTop + (document.body.clientHeight - this.clientHeight) / 2); } .content { background: #f3f3f3...
对于浏览器兼容性问题,`clientWidth`、`clientHeight`、`offsetWidth`和`offsetHeight`在不同浏览器中可能有不同的计算方式。在IE6.0及更早版本,`clientWidth`和`clientHeight`会减去边框宽度,而在Firefox 1.0.6+...
网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offsetWidth (包括边线的宽);网页可见区域高: document.body.offsetHeight (包括边线...
我们将以div元素为例,探讨clientHeight、clientWidth、offsetHeight、offsetWidth、clientTop、clientLeft、offsetTop、offsetLeft、scrollTop、scrollLeft和offsetParent这些属性。 clientHeight和clientWidth ...
在ie6中很多js脚本执行就会出现问题,一般是在获取clientWidth, clientHeight,offsetWidth, offsetHeight,scrollWidth, scrollHeight,scrollTop, scrollLeft会返回不正确的值。 因为在加了doctype后,在ie6中...
- `document.body.offsetWidth` 和 `document.body.offsetHeight` 分别表示网页可见区域的宽度和高度,包括了边线的宽度。 #### 定位相关的属性 对于精确定位的需求,JavaScript还提供了一系列属性来帮助开发者更...
例如,使用element.scrollLeft和element.scrollTop可以获取元素内容的水平和垂直滚动位置,这对于动态内容区域的管理是非常有用的。 在现代浏览器中,包括PC和移动端,这些DOM属性通常不存在兼容性问题,因此开发者...