scrollHeight的分析

简介:
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html   xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta   http-equiv ="Content-Type"   content ="text/html; charset=gbk"   />
< title > scrollHeight </title>
< style   type ="text/css" >
body{margin:0;}
div{font-size:12px;line-height:12px;height:3em;width:5em;}
</style>
</head>

< body >
< div   onclick ="alert(this.scrollHeight);"   style ="border:0px solid red;" >
这里是一大段的文本,我们为了看看scrollHeight怎么用
</div>
</body>
</html>


既然是scroll我们考虑在有文字溢出的情况下使用它,我们会在后面看到这是为了保证跨平台:

1.我们现在宽高设的是3行5列,有个长单词跑出来了先不管。
除了火狐,我们得到的都是72px=文字内容高度就是12px*6因为文字共6行,大于制定的3行,会出滚动条,下面我们指定显示滚动条

overflow-y:scroll;出现y轴的垂直滚筒条,由于滚动条有宽度,把我们的文字挤下了,所以实际列数达不到5个字了,所以出现结果是8行,这样ie和safari的是12px*8=96px;
我们可以加上滚动条的宽度
width设为5em+17px=60px+17px=77px;这样宽度设为77px后,文字还是显示没设置时的6行数,于是scrollHeight还是72px了。

但是要注意的是firefox3.0.6里面如果height指定的值小于16*2=32px时,滚动条不显示,就是那2个箭头,这样实际文字列数可能要比其他浏览器多,于是得到的scrollHeight会小于其他的,因为其他的浏览器,那2个箭头可以缩放。fr


 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/132172,如需转载请自行联系原作者



相关文章
|
9月前
window.scrollTop 不生效的原因,如何解决
window.scrollTop 不生效的原因,如何解决
277 0
|
6月前
|
JavaScript 前端开发
height、clientHeight、scrollHeight、offsetHeight区别
height、clientHeight、scrollHeight、offsetHeight区别
height、clientHeight、scrollHeight、offsetHeight区别
|
前端开发 JavaScript API
JavaScript 基于offsetHeight和clientHeight判断是否出现滚动条
JavaScript 基于offsetHeight和clientHeight判断是否出现滚动条
70 0
|
JavaScript IDE 开发工具
JS 中 offsetHeight/scrollHeight/clientHeight 的区别
client* clientWidth/clientHeight 返回的是元素的内部宽度,它的值只包含 content + padding,如果有滚动条,不包含滚动条 clientTop 返回的是上边
scrollTop详测
scrollTop详测
106 0
|
前端开发
你知道offsetHeight、scrollHeight、clientHeight的区别吗?
前言 offsetHeight、scrollHeight、clientHeight这三个属性我们经常在开发中遇到,如果小伙伴们没有经常使用的话,很容易把这些属性搞混,比如说什么窗口高度、元素高度、内容高度等等。当然,现在的前端框架很多时候帮我们封装了这些属性,但是我们也不能太过依赖框架,底层的原理我们还是需要了解的,今天就来理一理这三个属性分别代表什么?
150 0
你知道offsetHeight、scrollHeight、clientHeight的区别吗?
|
JavaScript 前端开发
你记住JS中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX吗?
你记住JS中offsetWidth、clientWidth、width、scrollWidth、clientX、screenX、offsetX、pageX吗?
clientWidth与clientHeight,offsetWidth与offsetHeight
clientWidth与clientHeight,offsetWidth与offsetHeight
124 0
clientWidth与clientHeight,offsetWidth与offsetHeight
|
API 编解码
clientHeight、offsetHeight、scrollHeight详解
  网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offsetWidth   (包括边线的宽); 网页可见区域高: document.
1434 0