JS-元素大小深入学习-offset、client、scroll等学习研究笔记
一些属性和方法,在dom中没有规定如何确定页面中元素大小的情况下诞生。。。
1.偏移量(offset dimension)
测试代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>offset偏移量学习</title>
<meta name="author" content="郭菊锋/702004176@qq.com"/>
<style type="text/css">
#a{
height: 300px;width: 300px;
border: 1px solid red;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px 0;
margin: 10px 0;
overflow: scroll;
}
#a p{height: 450px;}
</style>
</head>
<body>
<div id="a" style="">
<p></p>
</div>
</body>
</html>
js代码:
<script type="text/javascript">
var a= document.getElementById('a');
console.log(a.offsetHeight);
console.log(a.clientHeight);
</script>
获取理论结果:
//offsetWidth 包括padding和border,不包括滚动条,滚动条是默认在宽度中的。
几种情况——
//加了boxsizing的情况: offsetWidth值 = style的宽度值,
//不加boxsizing的情况 : offsetWidth值 = style中的宽度 + padding左右值 + border左右值。
//有无滚动条不受影响
//height同理
以上理论,经测在谷歌和火狐中都适用。
offsetLeft 和 offsetTop
offsetLeft/offsetHeight是元素的左边框/上边框到其最近的、具有大小的元素左边框/上边框的距离。
具体值还是取决于他的offsetParent。
心中有个概念,但是最终解释还是看不同情况下的结果:

2.客户区大小(client dimension)
指的是元素内容及其内边距所占据的空间大小,从字面上看,客户区大小就是元素内部的空间大小,因此滚动条占用的空间不计算在内【js高级程序设计文摘】
测试offsetWidth顺便测试的clientWidth的
clientWidth 永远会减去滚动条的尺寸和border的尺寸,只包括内容和padding的。!! 即使加了box-sizing=border-box也不包括border,
几种情况——
//加了box-sizing: clientWidth值就是 = style中的宽度 - border宽度,
//不加box-sizing: clientWidth值就是 = style中的宽度 + padding左右值。
//有滚动条情况:clientWidth值 = (style中的宽度 + padding左右值)- 17px(滚动条的宽度值);
//滚动条加box-sizing情况: clientWidth值 = style中的宽度 - 17px(滚动条的宽度值)- border的左右宽度值
//height同理
以上理论,经测在谷歌和火狐中都适用。
3.scrollHeight(client dimension)
scrollHeight返回元素的完整的高度,以像素为单位
JS-元素大小深入学习-offset、client、scroll等学习研究笔记的更多相关文章
- JavaScript中的 offset, client,scroll
在js 中我们要用到的 offset, client, scroll 在这我把自己理解的给大家分享一下. offset div.offsetTop 指div距离上方或上层控件的距离,单位像素 div. ...
- offset/client/scroll一些总结
offset/client/scroll一些总结 1.offset 首先offset共有五个值 1.offsetParent 2.offsetTop 3.offsetLeft 4.offsetWidt ...
- 元素大小-偏移量(offset)客户区大小(client)滚动大小(scroll)
一.偏移量---offset 1.定位父级 在理解偏移大小之前,首先要理解offsetParent.人们并没有把offsetParent翻译为偏移父级,而是翻译成定位父级,很大原因是offsetPar ...
- js 元素offset,client , scroll 三大系列总结
1,element.offsetWidth : 包括 padding 和 边框 2,element.clientWidth : 包括 padding ,不包含边框 , 内容超出会溢出盒子的时候,就用s ...
- js 元素大小缩放实例
元素大小缩放是一套连贯事件,按下鼠标不放,拖动鼠标 然后松开. 按下鼠标事件 当按下鼠标时,记录元素大小.鼠标按下的位置.状态位. 拖动鼠标事件 当鼠标拖动时,计算元素调用后的大小. 元素调整后大小 ...
- js中 offset /client /scroll总结
offset家族(只能读取,不能操作): offsetLeft:元素的边框的外边缘距离与已定位的父容器(offsetparent)的左边距离(就是子元素左边框到父元素左边框的距离). offsetTo ...
- offset client scroll
offsetHeight offsetWidth返回为元素在屏幕上显示大小,不包括外边距 clientHeight clientWidht 和上面两个类似,不同的是,这两个不包括外边距高度. < ...
- bom中的offset,client,scroll
简单明了
- JS 中的offset、scroll、client总结
经常碰到offset.scroll.client这几个关键字,每次都要各种实验,这里总结一下. 两张图镇楼,随时翻阅 1. offset offset 指偏移,包括这个元素在文档中占用的所有显示宽度, ...
随机推荐
- Android——RadioGroup和CheckBox
xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= ...
- Jquery解析json数组字符串
最近在工作中用到了Jquery来解析json字符串,网上解析jquery解析json单个对象的实例不少,但是jquery解析json数组的实例却是不多,下面我举一个简单的例子来跟大家分享与一下,本人水 ...
- HBase shell 命令。
HBase shell 命令. 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证( ...
- salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found.
salt '*' state.highstate 报错找不到文件,环境如下No Top file or master_tops data matches found. file_roots: b ...
- find 命令一个命令多参数如何使用,????,perm
[root@ob2 mytmp]# find -mtime -7 -type f \( -name "*.html" -o -name "*.tar.gz" \ ...
- iOS边练边学--UITableViewCell的常见属性设置
// 取消选中的样式(常用) 让当前 cell 按下无反应 cell.selectionStyle = UITableViewCellSelectionStyleNone; // 设置选中的背景色,U ...
- spring boot 自学笔记(四) Redis集成—Jedis
上一篇笔记Reddis集成,操作Redis使用的是RedisTemplate,但实际中还是有一大部分人习惯使用JedisPool和Jedis来操作Redis, 下面使用Jedis集成示例. 修改Red ...
- Linux基础知识之history的详细说明
背景:history是Linux中常会用到内容,在工作中一些用户会突然发现其安装不了某个软件,于是寻求运维人员的帮助,而不给你说明他到底做了哪些坑爹的操作.此时你第一件要做的就是要查看其history ...
- Linux shell 学习
·详细介绍Linux shell脚本基础学习(一) ·详细介绍Linux shell脚本基础学习(二) ·详细介绍Linux shell脚本基础学习(三) ·详细介绍Linux shell脚本基础学习 ...
- spark 安装配置
最佳参考链接 https://opensourceteam.gitbooks.io/bigdata/content/spark/install/spark-160-bin-hadoop26an_zhu ...