下面这三组是关于元素大小、位置相关的属性

一、offset 偏移量

  1、offsetParent

    该属性获取距离当前元素最近的定位父元素,如果没有定位父元素此时是 body 元素

  2、offsetLeft / offsetTop

    该属性获取当前元素距离 offsetParent 的横向偏移纵向偏移

  3、offsetWidth / offsetHeight

    该属性获取当前元素的宽高,宽高包括:内容(content)、边框(border)和内填充(padding)

  

  注意:offset 属性 是只读属性

  Demo:

 // 结构
<div id="box">
<div id="child"> </div>
</div>
// 样式
<style>
body {
margin: 0;
}
#box {
position: relative;
width: 300px;
height: 300px;
background-color: red;
overflow: hidden;
margin: 50px;
}
#child {
width: 100px;
height: 100px;
background-color: blue;
margin: 50px;
border: 10px solid yellow;
padding: 10px;
}
</style>
// js
<script>
// 获取子元素的位置和大小
var child = document.getElementById('child');
console.log(child.offsetParent);
// 获取child的位置 offsetLeft 距离offsetParent的横向偏移
console.log(child.offsetLeft);
console.log(child.offsetTop); // 获取child的大小 包括边框和padding
console.log(child.offsetWidth);
console.log(child.offsetHeight);
</script>

二、client 客户区大小

  1、clientLeft / clientTop

    该属性是获取当前元素的 border-left、border-right 的宽度。(没有 border-right/border-bottom属性)

  2、clientWidth / clientHeight

    该属性是获取当前元素的宽高,宽高包括:内容(content)和 内填充 (padding)

  

  Demo:

 // 结构
<div id="box"> </div>
// 样式
<style>
body {
margin: 0;
} #box {
width: 100px;
height: 100px;
margin: 50px;
border: 30px solid red;
padding: 10px;
background-color: green;
}
</style>
// js
<script>
var box = document.getElementById('box');
// clientLeft 是border-left 的宽度
// clientTop border-top 的宽度
console.log(box.clientLeft);
console.log(box.clientTop); // 获取大小 包括padding 但是不包括边框
console.log(box.clientWidth);
console.log(box.clientHeight);
</script>

三、scroll 滚动偏移

   1、scrollLeft / scrollTop

    该属性获取元素内容滚动出去的横向距离 / 纵向距离

  2、scrollWidth / scrollHeight

    该属性获取元素的大小,指的是:内容(content)+ 内填充(padding)和未显示出来的内容

  

  Demo:

 // 结构
<div id="box">
Javascript,一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的直译语言。它已经由欧洲电脑制造商协会通过ECMAScript实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器(Chrome、IE、FireFox等)支持。
</div>
// 样式
<style>
body {
margin: 0;
} #box {
width: 100px;
height: 100px;
margin: 50px;
border: 30px solid red;
padding: 10px;
background-color: green;
overflow: auto;
}
</style>
// js
<script>
// scroll
var box = document.getElementById('box');
// 当拖动box中的滚动条的时候触发
box.onscroll = function () {
console.log(box.scrollLeft);
console.log(box.scrollTop); }
// 内容的大小,包括padding 和未显示的内容,不包括滚动条
console.log(box.scrollWidth);
console.log(box.scrollHeight); </script>

最新文章

  1. solrcloud使用中遇到的问题及解决方式
  2. ***PHP类型转换实例:$this-&gt;input-&gt;get()返回的结果是字符串类型(数字字符串转数字)
  3. Adapter适配器
  4. 【转载】Linux的进程间通信-信号量
  5. Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:RELEASE from any of the configured repositories.
  6. Keil uVision4 代码编辑器中文字符乱码问题
  7. iOS 中有用的开源库
  8. UVa 11427 (期望 DP) Expect the Expected
  9. Squid故障
  10. CSS之关于clearfix--清除浮动
  11. 限制UITextField/UITextView的输入字数与中文输入之后的英文换行问题
  12. Daily Sentence
  13. 第二天(CSS 选择器)
  14. Matlab曲面拟合和插值
  15. Arduino live weather broadcasting 实时天气站
  16. 湖南多校对抗赛(2015.05.03)Problem A: Twenty-four point
  17. 剪邮票dfs+bfs+组合+结构体
  18. Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警
  19. 基于docker 如何部署surging分布式微服务引擎
  20. rsync 安装

热门文章

  1. 五个goland进行go开发的小技巧
  2. 初识PIXI.js
  3. C 题解———2019.10.16
  4. linux .pid文件简述
  5. MybatisPlus使用代码生成器遇到的小问题
  6. vue+element table的弹窗组件
  7. vue+element 表格筛选
  8. listings技巧
  9. 【Gamma】 Phylab 展示博客
  10. Gamma阶段第十次scrum meeting