JS获当前网页元素高度offsetHeight

2021年09月15日 阅读数:5
这篇文章主要向大家介绍JS获当前网页元素高度offsetHeight,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

本文测试的是offsetHeight,获取网页中某元素的高度,单位是像素,获取的类型是整型,能够进行数字运算。
如图,网页中的元素自己的高度包括,自身的内容+padding+border,而margin是元素对外面的距离,因此不属于元素自己的高度。javascript

如图,设置一个div,取名叫D1,D1的上下左右padding各50px,上下左右margin各11px;上下左右border各10px;
最后的结果是:
offsetTop:11px,也就是margin的top值。进入浏览器的开发者模式,我的用的是qq浏览器极速模式,发现div在设置的顶边距包括了body的margin。
offsetLeft:19px,该div的左边margin设置的是11px,进入浏览器的开发者模式,能够看到body也有margin,是8px,因此该div距离浏览器左边的距离是body的margin+div自身的margin=8px+11px=19px。
offsetWidth:由于div自己不设宽度,因此是宽度自适应,随着浏览器窗口的大小而改变。内容宽度1150px+上下padding50px+50px+上下border10px+10px=1270px。
offsetHeight:div自己的上下border+上下pddding+div里内容自己的高度,因为自己没给div设置高度样式,因此高度和内容有关,目前里面是一句话,内容高度为42px。
10px+10px(上下border)+50px+50px(上下paddding)+42px(内容自己高度)=162px。
在IE中也测试了下,不一样的是height,由于不一样浏览器的默认字体默认字体大小等不一样等,致使内容高度不一样,所以offsetHeight也不一样。html

也就是offsetTop,offsetLeft是元素距离浏览器的边距,和元素自己的margin和外面的其余的margin有关
offsetWidth、offsetHeight是元素自己的border、padding、内容的合计值,也就是整个元素自己的宽高java

测试代码:浏览器

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
<style>#D1{background-color:#bbf1f2;padding:50px;margin:11px;border:10px solid blue;}</style>
</head>
<body>
<div id="D1">官网样例是混合部署<br>LodopFuncs.js里已经写好了判断</div>
<a href="javascript:prn1_preview()">点击获取</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量 
    function prn1_preview(){ 
  var D1=document.getElementById("D1");
  console.log("D1的上下左右padding各50px,上下左右margin各11px;上下左右border各10px;");
  console.log("D1的上下左右:top:"+D1.offsetTop+",left:"+D1.offsetLeft+",width:"+D1.offsetWidth+",height:"+D1.offsetHeight);
    };
</script> 
</body>

 图示:测试