height、clientHeight、scrollHeight、offsetHeight区别

1.top

此属性仅仅在对象的定位(position)属性被设置时可用。否则,此属性设置会被忽略。

复制代码

代码如下:

<div style="background-color:red;
position:absolute; width:100px; height:100px;">
<p
style=" position:absolute; top:-5px;">测试top</p>

</div>

上面是一个段落P包含在一个DIV内,可以看到P的top设置为-5px后,它的上边距超过了容器DIV的上边距,超过的这段距离就是设置的5px。

需要注意的是,DIV和P这一对包含元素,都需要设置position为absolute才能得到想要的结果,假如父元素不设置,则子元素的参照将是更上层定义过position的元素,直到整个文档;

2.posTop

posTop的数值其实和top是一样的,但区别在于,top固定了元素单位为px,而posTop只是一个数值,一般使用posTop来进行运算。

3.scrollTop

复制代码

代码如下:

<div id="container"
style=" width:100px; height:100px; overflow:auto;">

<p style="" mce_style="">

这里是文本
</p>
</div>
<script
type="text/javascript"><!--
container.scrollTop = 12;
//
--></script>

这一段文本在这个100*100的DIV内无法完全显示,所以设置了overflow为auto,它会出现一个上下方向的滑动框,假如没有设置
id.scrollTop属性的话,默认情况下滑块位置在顶端。而设置了scrollTop值为12后,滑块的位置改变了,默认显示是卷过了12个象素的文本。如果设置overflow为hidden,则将会无法显示顶部12个象素的文本。

注意设置方式是id.scrollTop,而不是id.style.scrollTop。

4.offsetTop

如果元素 A 是 HTML 的 body 元素,其 display 属性计算值是 none,或者不具有 CSS 布局盒子,则返回
0,并停止本算法。

如果元素 A 的 offsetParent 是 null 或者是 HTML 的 body 元素,以 CSS
像素为单位返回元素 A 上边框距画布原点的垂直距离,并停止本算法。

以 CSS 像素为单位返回元素 A 上边框距其 offsetParent
上边框的距离。
 
5.
scrollHeight 与 offsetHeight与clientHeight

对于document.body

clientHeight
大家对 clientHeight
都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,一般是最后一个工具条以下到状态栏以上的这个区域,与页面内容无关。

offsetHeight
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。

NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。

scrollHeight

IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。
NS、FF 认为
scrollHeight 是网页内容高度,不过最小值是 clientHeight

对某个HTML控件

offsetHeight是自身元素的高度,scrollHeight是 自身元素的高度+隐藏元素的高度。

复制代码

代码如下:

<div id="container"
style=" width:100px; height:100px; overflow:auto;">

<p style=" height:250px; ">
别再做情人 做只猫 做只狗
不做情人 做只宠物至少可爱迷人 和你相交不浅无谓明日会被你憎</p>
</div>
<script
type="text/javascript"><!--
alert(container.offsetHeight);

alert(container.scrollHeight);
// --></script>

将依次输出100,250。因为已经指定了元素的height为100px,所以offsetHeight始终为100px;内部元素为250px,而容器元素只有100px,那么还有150px的内容它无法显示出来,但它却是实际存在的,所以scrollHeight值为100+150=250。

第二篇

我们来实现test中的onclick事件

   function justAtest()
     {
        var test= document.getElementById("test");
        var test2=document.getElementById("test2")
        var test3=document.getElementById("test3")
        var test4=document.getElementById("test4");     
        alert(test4.style.height);
        alert(test3.style.height);    
        alert(test2.style.height)
        alert(test.style.height);      
        alert(document.body.style.height)
     }

height :其实Height高度跟其他的高度有点不一样,在javascript中它是属于对象的style对象属性中的一个成员,它的值是一个字符类型的,而另外三个高度的值是int类型的,它们是对象的属性.因此这样document.body.height就会提示undenifine,而必须写成document.body.style.height
上面的脚本将依次弹出700px,550px,600px,500px,1000px.height是最简单的了,不必去考虑是否有滚动条及边框等.因此也不做多解释了.
然后我们将脚本换下

     function justAtest()
     {
        var test= document.getElementById("test");
        var test2=document.getElementById("test2")
        var test3=document.getElementById("test3")
        var test4=document.getElementById("test4");     
        alert(test4.clientHeight);
        alert(test3.clientHeight);    
        alert(test2.clientHeight)
        alert(test.clientHeight);      
        alert(document.body.clientHeight)
     }

运行后火狐的结果为:700,550,583,483,1000
           IE的结果为:700 ,550,583,483,1000
IE与火狐下的运行结果是一致的.下面来看下clientHeight的定义.
clientHeight:可见区域的宽度,不包括boder的宽度,如果区域内带有滚动条,还应该减去横向滚动条不可用的高度,正常的是17px,其实就是滚动条的可滚动的部分了,其实clientHeight与height的高度差不多,如果不带滚动条的话他们的值都是一样的,如果带有滚动条的话就会比height值少17px;火狐与IE下均为一致.
接着我们来看scrollHeight

function justAtest()
     {
        var test= document.getElementById("test");
        var test2=document.getElementById("test2")
        var test3=document.getElementById("test3")
        var test4=document.getElementById("test4");     
        alert(test4.scrollHeight);
        alert(test3.scrollHeight);    
        alert(test2.scrollHeight)
        alert(test.scrollHeight);      
        alert(document.body.scrollHeight)
     }

运行后火狐的结果为:700,552,700,602,1002
           IE的结果为: 15, 15 , 700,602, 552
scrollHeight:这个属性就比较麻烦了,因为它们在火狐跟IE下简直差太多了..
在火狐下还很好理解,它其实就是滚动条可滚动的部分还要加上boder的高度还要加上横向滚动条不可用的高度,与clientHeight比起来,多个border的高度跟横向滚动条不可用的高度.

在IE中 scrollHeight确是指这个对象它所包含的对象的高度加上boder的高度和marging,如果它里面没有包含对象或者这个对象的高度值未设置,那么它的值将为15
最后我们来看offsetHeight

     function justAtest()
    {
        var test= document.getElementById("test");
        var test2=document.getElementById("test2")
        var test3=document.getElementById("test3")
        var test4=document.getElementById("test4");     
        alert(test4.offsetHeight);
        alert(test3.offsetHeight);    
        alert(test2.offsetHeight)
        alert(test.offsetHeight);      
        alert(document.body.offsetHeight)
     }

offsetHeight:
FF:700,552,602,502,1002
IE:700,552,602,502,1002
这个属性好办,因为在测试中IE跟火狐的结果是一样的,均表示是自身的高度,如果有设置boder的话还应该加上boder的值,因为除了test4这个div外,其他的div均有设置border=1px,所以552=550+2,其他的均一样.

嘿嘿,综上所述,clientHeight与height的区别是如果有滚动条时应减去滚动条的17px不可用部分,offsetHeight与Height的区别是增加了boder的高度,ScrollHeihgt与Height的区别是火狐下与offsetHeight一致,IE下如上所述.

相信你了解了这个,对width,clientWidth,scrollWidth,offsetWidth已经不陌生了吧,只不过一个是长一个是宽的问题了.

时间: 2024-11-10 13:06:02

height、clientHeight、scrollHeight、offsetHeight区别的相关文章

height clientHeight scrollHeight offsetHeight的大致区别

这主要是针对火狐浏览器来讲的: height:就是div的高度: clientHeight:一般情况下和height是一样的,如果div有滚动条,那么clientHeight = height - 滚动条的高度: var w= document.documentElement.clientWidth || document.body.clientWidth; var h= document.documentElement.clientHeight || document.body.clientH

clientHeight , scrollHeight , offsetHeight之间的区别及兼容方案

clientHeight , scrollHeight , offsetHeight相信每个人都用过,可是每次用都要查一下到底哪个是文档大小哪个是视口大小,还有头疼的兼容问题. 先来官方的了解一下这三个属性: clientHeight:元素客户区的大小,指的是元素内容及其边框所占据的空间大小(经过实践取出来的大多是视口大小) scrollHeight: 滚动大小,指的是包含滚动内容的元素大小(元素内容的总高度) offsetHeight: 偏移量,包含元素在屏幕上所用的所有可见空间(包括所有的内

js的各种位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的区别?

1.clientHeight:表示的是可视区域的高度,不包含border和滚动条: 2.offsetHeight:表示的是可视区域的高度,包含了border和滚动条 3.scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分: 4.clientTop:表示边框border的厚度,在未指定的情况下一般为0 5.srcollTop:滚动后被隐藏的高度,获取对象相对于由offsetParent属性指定的父坐标(css定位的元素或body元素)距离顶端的高度 分析:    clien

document.documentElement与body下clientHeight,scrollHeight等区别

本次说明仅在chrom环境下,ie等其他浏览器可能不同 1获取显示屏高度(pc和移动端) window.screen.height => 这个好理解,不多说. 2获取浏览器可视窗口高度(PC端) document.documentElement.clientHeight => 就是网页在浏览器中可见高度,不包括浏览器自身的状态栏,随着浏览器大小变化: 3获取网页内容高度 1)document.documentElement.scrollHeight = document.documentEle

clientHeight , scrollHeight , offsetHeight之间的区别

clientHeight:元素客户区的大小,指的是元素内容及其边框所占据的空间大小(经过实践取出来的大多是视口大小) scrollHeight: 滚动大小,指的是包含滚动内容的元素大小(元素内容的总高度) offsetHeight: 偏移量,包含元素在屏幕上所用的所有可见空间(包括所有的内边距滚动条和边框大小,不包括外边距 详情:https://www.cnblogs.com/nanshanlaoyao/p/5964730.html 原文地址:https://www.cnblogs.com/hu

clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop

clientHeight:表示的是可视区域的高度,不包含border和滚动条 offsetHeight:表示可视区域的高度,包含了border和滚动条 scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分. clientTop:表示上边框border的厚度 offsetTop:子元素的外边框到offsetParent内边框的距离 scrollTop:滚动后被隐藏的高度 offsetParent:距离元素最近的一个具有定位的祖宗元素 clientX: 相对文档的水平坐标 cl

clientHeight ,offsetHeight,style.height,scrollHeight的区别与联系

style.height 包括元素的滚动条,不包括边框 clientHeight 不包括元素的滚动条和边框,只有在没有元素的滚动条的情况下,style.height相等于clientHeight offsetHeight 包括元素的滚动条和边框,只有在没有元素的滚动条和边框的情况下,offsetHeight==style.height==clientHeight scrollHeight offsetHeight+scrollTop,只有在没有元素的滚动条和边框和滚动时的情况下,offsetHe

clientHeight ,offsetHeight,style.height,scrollHeight有区别与联系

style.height 包括 元素的滚动条,不包括边框clientHeight 不包括元素的滚动条和边框,只有在没有元素的滚动条的情况下,style.height相等于clientHeightoffsetHeight 包括元素的滚动条和边框,只有在没有元素的滚动条和边框的情况下,offsetHeight==style.height==clientHeightscrollHeight offsetHeight+scrollTop,只有在没有元素的滚动条和边框和滚动时的情况下,offsetHeig

关于offsetX,clientX,pageX,offsetHeight,clientHeight ,scrollHeightX的区别

一.关于offsetX,clientX,pageX,scrollX的区别 offsetX表示点击点到所点击物体左边距的距离: clientX表示点击点到浏览器左边的距离,该点击点会随着滚动条的移动而发生变化: pageX表示点击点到浏览器左边的距离,但点击点不会因滚动条的移动而变化: scrollX表示点击点到屏幕左边的距离 二.关于offsetHeight,clientHeight ,scrollHeight的区别 clientHeight:内容可视区域的高度,也就是说页面浏览器中可以看到内容

style.height、offsetHeight、clientHeight、scrollHeight的区别

style.height 包括元素的滚动条,不包括边框 clientHeight 不包括元素的滚动条和边框 offsetHeight 包括元素的滚动条和边框 scrollHeight offsetHeight+scrollTop 小贴士: 在IE下,创建一个oLi <style> li{/*不设置li的高度*/} </style> <script> var oLi = document.createElement('li'); oLi.innerHTML='我是li的内