javascript中各类高度和宽度的整理

基础学的不扎实,关于高度宽度的各个属性总是糊里糊涂的,在这里理一下思路。

下面的测试以以下html结构为例

<div id="div1" style="height:200px;width:200px;padding:20px;margin:10px;border:1px solid #000;overflow:scroll">
    <div id="div2" style="height:1000px;width:1000px;padding:20px;margin:10px;border:1px solid #000;">
    </div>
</div>

height

height属性有点特殊,只能获取写在内联样式中的高度值,并且返回的是一个字符串。

height属性还有另外一个特殊的地方。它是style下的一个属性,所以在使用的时候应该是obj.style.height或者document.body.height这样来使用。

height属性获取的是纯粹的高度值,不包括边框,内外填充。

#div1返回结果为200px

#div2返回结果为1000px

clientheight

clientHeight返回的是数字。

结果包含元素的高度+内填充(padding)。

如果该元素出现了横向的滚动条(滚动条的宽/高度一般为17px),则要减去滚动条的高度。

#div1返回结果为 200 + 20 *2 -17 =223

#div2返回结果为 1000 + 20*2 =1040

document.body.clientHeight || document.documentElement.clientHeight 。这样可以获取浏览器可视区域的高度,不包括浏览器的工具栏地址栏。

offsetHeight

offsetHeight返回的是数字。

结果包括元素的高度+内填充(padding)+边框(border)。

结果与是否出现滚动条无关。

#div1返回的结果为 200 + 20*2 + 1*2 = 242

#div2返回的结果为 1000 + 20*2 + 1*2 =1042

document.body.offsetHeight || document.documentElement.offsetHeight 。这样可以获取整个页面文档的高度。

scrollHeight

scrollHeight返回的是数字。

简单来说返回的是选定元素作为容器,内部能滚动的总高度。

#div1返回的结果为 1000(#div2的高度) + 20*2(#div2的内填充) + 1*2(#div2的边框) + 10*2(#div2的外填充) + 20*2(#div1的内填充) = 1102   !!!【这是chrome下的计算结果】

          1000(#div2的高度) + 20*2(#div2的内填充) + 1*2(#div2的边框) + 10*2(#div2的外填充) + 20(#div1的内填充,测试发现只取了一半的内填充,目前没搞明白怎么回事) = 1082   !!!【火狐与ie下的计算结果】

#div2返回的结果为 1000(自身高度) + 20*2(自身的内填充) = 1040   !!!【该值浏览器之间没有差异】

document.body.scrollHeight || document.documentElement.scrollHeight 。这样可以获取整个页面文档的可滚动高度。

scrollTop

scrollTop返回的是数字。

滚动条距离顶部的距离。



整理暂时先到这里。

width、offsetWidth、clientHeight、scrollWidth、scrollLeft对应上方高度的取值方式。

最后附上一张表。以上整理如果有错误,欢迎指正。

时间: 2024-10-12 09:47:08

javascript中各类高度和宽度的整理的相关文章

JavaScript中有关高度和宽度的API介绍

JavaScript世界中,有很多看起来能够帮我们知道网页宽度和高度的API,但太繁多了,而且容易弄混.不容易区分它们.下面我就来介绍一下,这些API到底是什么意思,之间的区别又在哪里. 一.设备的分辨率 window.screen.width × window.screen.height 台式机:1440 × 900 / 手机:360 × 640 二.浏览器的分辨率 window.screen.availWidth × window.screen.availHeight 台式机Chrome:1

javascript中各个高度与宽度区分

js获取文档的高度:Math.max(document.body.scrollHeight,document.documenElement.scrollHeight); js获取浏览器可视区域的高度: Math.max(document.body.clientHeight, document.documentElement.clientHeight) // window.innerHeight; js获取滚动条高度:document.documentElement.scrollTop || do

CSS中的高度和宽度

1.简单的说,常规流向的块级元素,width为auto时,会尽量充满父元素的内容宽度,而height为auto时,则是由其内部的不浮动的子元素的高度决定(无浮动,绝对定位). 2.width:100%;width:auto <div>    <p>1</p></div><style type="text/css">div{ width:600px; overflow:auto;}p{ width:100%;      padd

javaScript中一些常见的兼容性问题整理

javaScript中一些常见的兼容性问题整理 1)滚动条: document.documentElement.scrollTop||document.body.scrollTop 2) 获取样式兼容 functiongetStyle(dom, styleName){ return dom.currentStyle? dom.currentStyle[styleName] getComputedStyle(dom)[styleName]; } 3) 网页可视区域兼容 window.innerHe

JavaScript获取网页高度和宽度

JavaScript获取网页高度宽度 /********************  * 取窗口滚动条高度  ******************/ function getScrollTop() {     var scrollTop=0;     if(document.documentElement&&document.documentElement.scrollTop)     {         scrollTop=document.documentElement.scrollTo

Jquery 获取各种高度、宽度【整理】

alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(document).height()); //浏览器当前窗口文档的高度 alert($(document.body).height());//浏览器当前窗口文档body的高度 alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin alert($(window).width());

jquery中各类高度宽度的对比

跟上一篇js的一样,也是各种高度宽度傻傻分不清楚,而jquery也是平时经常使用的库,所以还是自己整理一下. 顺便看一下$('html'),$('body'),$(window),$(document)这几个对象,在不同的api下的取值情况.(也是傻傻分不清楚) 举个栗子.以下的测试,都是在这个的基础上进行取值的. <style>*{margin:0;padding:0} body{padding:20px;margin:0;border:1px solid #000;} #div1{heig

JavaScript获取浏览器高度和宽度值(documentElement,clientHeight,offsetHeight,scrollHeight,scrollTop,offsetParent,offsetY,innerHeight)

IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.documentElement.clientWidth ==> 可见区域宽度 document.documentElement.clientHeight ==> 可见区域高度 FireFox中:  document.body.clientWidth ==> BODY对象宽度 document.

javascript获取浏览器高度与宽度信息

网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth (包括边线的宽)网页可见区域高:document.body.offsetHeight (包括边线的宽)网页正文全文宽:document.body.scrollWidth网页正文全文高:document.body.scrollHeight网页被卷去的高:document.body.scrollTop