JS_页面大小及元素的位置

本文详细介绍了网页元素的尺寸计算方法,包括相对大小与绝对大小的区别,并提供了获取元素位置的具体实现,涵盖了不同浏览器间的差异处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

对这些概念一直很模糊,今天仔细看了一下。

 

一,网页的绝对与相对大小

 

二,网页相对大小

每个元素的clientHeight,clientWidth = 元素内容+padding

 

 

三,网页的绝对大小

document的scrollHeight,scrollWidth,

 

 

这里有一个问题,如果网页内容能在浏览器中完全显示的话,那么绝对大小应该与相对大小一样才对,但是,不同的浏览器中其实有不同的处理,如下:(自己测的)

 

处理结果 = {

   FF : 绝对==相对,
   chrome : 绝对高度只是文档流的高度,而不是浏览器的高度,
   Opera : 相对高度是文档流的高度,而不是浏览器的高度,
   IE6,IE7 : 绝对高度只是文档流的高度,..., 但是计算绝对定位的元素!!(注意,其它的不计算绝对定位元素),
   IE8 : 绝对==相对
}

 

于是改进代码,取其中最大值

 

 

 

四,网页元素的绝对位置

 

offsetTop, offsetLeft,表示该元素的左上角与父容器左上角的距离

 

 

 

注意此函数对表格及iframe不适用

 

五,网页元素的相对位置

绝对位置-滚动条滚动的距离 scrollTop,scrollLeft

 

六,获取元素位置的快速方法

 

那就是使用getBoundingClientRect()方法。它返回一个对象,其中包含了left、right、top、bottom四个属性,分别对应了该元素的左上角和右下角相对于浏览器窗口(viewport)左上角的距离。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值