上面主要区分了【offset】和【client】开头的各个属性的意义,下面这张图是转载的,又加入了【scroll】开头的,和元素本身的【style】

clientWidth   是对象看到的宽度(不含border)
scrollWidth   是对象实际内容的宽度(若无padding,那就是边框之间距离,如有padding,就是左padding和右padding之间距离)。
offsetWidth  是指对象自身的宽度,整型,单位像素(含border,如滚动条的占用的宽,值会随着内容的输入而不断改变)。

好吧,第一张图看不清,我把代码贴下面了。

 CSS代码 
body    { margin:10px; padding:10px; font-size:10px; }
div.v1   { margin:10px 30px; padding:20px; border:10px solid #000; border-left:20px solid red; }
div.v2   { margin:10px 30px; padding:20px; border:10px solid #000; border-left:15px solid green; }
p         { margin:20px 50px; border:10px solid red; padding:20px; border-left:15px solid #F3F;}

 JS代码 
$(function(){
var oP=document.getElementById("replace");

var offsetWidth = oP.offsetWidth;       // 当前对象 【content+padding+border】
var offsetHeight = oP.offsetHeight;     // 怎么只有padding+border?
var clientWidth = oP.clientWidth;        // 当前对象 【content+padding】
var clientHeight = oP.clientHeight;       // 只有padding啦?

var offsetLeft = oP.offsetLeft;        // 所有上级包括body的【padding-left、border-left、margin-left值】+【当前元素的margin-left值】 。我暂时理解为:当前元素从边框以外抵达窗口左边界的距离
var offsetTop = oP.offsetTop;        // 暂时理解为当前对象从边框以外抵达窗口上边界的距离
// 以上这俩,FF有兼容问题,不会计算上body的border值
var clientLeft = oP.clientLeft;         // 当前对象【border】宽度
var clientTop = oP.clientTop;         // 当前对象【border】高度

$("#replace").text("offsetLeft: " + offsetLeft);
})

 HTML结构 
<div class="v1">
  <div class="v2">
    <p id="replace"></p>
  </div>
</div>

  追加点东西,在下面  

易混淆点:

clientX     设置或获取鼠标指针位置相对于当前窗口的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
clientY     设置或获取鼠标指针位置相对于当前窗口的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 
offsetX    设置或获取鼠标指针位置相对于触发事件的对象的 x 坐标。 
offsetY    设置或获取鼠标指针位置相对于触发事件的对象的 y 坐标。 
screenX   设置或获取获取鼠标指针位置相对于用户屏幕的 x 坐标。 
screenY   设置或获取鼠标指针位置相对于用户屏幕的 y 坐标。 
x            设置或获取鼠标指针位置相对于父文档的 x 像素坐标(亦即相对于当前窗口)。 
y            设置或获取鼠标指针位置相对于父文档的 y 像素坐标(亦即相对于当前窗口)。

【client】与【offset】的更多相关文章

  1. client/scroll/offset width/height/top/left ---记第一篇博客

    client/scroll/offset width/height/top/left (盒模型为contentBox,定位原点是元素左上角边框最外层的交点) clientWidth  width+左p ...

  2. scroll、client和offset的区别

    scroll.client和offset的区别:http://www.cnblogs.com/pcd12321/p/4448420.html

  3. 前端 ---client、offset、scroll系列

    client.offset.scroll系列   1.client系列 代码如下: <!DOCTYPE html> <html> <head> <meta c ...

  4. python 全栈开发,Day52(关于DOM操作的相关案例,JS中的面向对象,定时器,BOM,client、offset、scroll系列)

    昨日作业讲解: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉, ...

  5. 4.client、offset、scroll系列

    client.offset.scroll系列 他们的作用主要与计算盒模型.盒子的偏移量和滚动有关 clientTop 内容区域到边框顶部的距离 ,说白了,就是边框的高度 clientLeft 内容区域 ...

  6. 差别client、offset、scroll系列以及event的几个距离属性

    element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个仅仅读属性,它包含了: css width + ...

  7. 区别client、offset、scroll系列以及event的几个距离属性

    element元素结点属性 一. offset系列 1.offsetWidth 和offsetHeight element.offsetWidth是一个只读属性,它包括了: css width + p ...

  8. 20190430-screen、client、offset、scroll等JS中各种宽度距离

    参考文献: JavaScript概念之screen/client/offset/scroll/inner/avail的width/left

  9. client、offset、scroll

    1. client 客户区大小 1.1. clientHeight和clientWidth element.clientHeight表示元素可视区域的高度,包括可视区域中元素的 CSS height+ ...

  10. DOM盒子模型常用属性client,offset和scroll

    JS盒子模型属性 在JS中通过相关的属性可以获取(设置)元素的样式信息,这些属性就是盒子模型属性(基本上都是有关于样式的) 属性 值 client top/left/width/height offs ...

随机推荐

  1. 依赖注入(DI)与控制反转(IOC)

    DI(依赖注入,Dependency Injection),和所谓的IoC(控制反转,Inversion of Control )是一个意思. DI是一种通过接口实现松耦合的设计模式.初学者可能会好奇 ...

  2. WebAPI 请求跨域问题

    本人采用的是利用CORS解决跨越问题. 首先利用Nuget 安装“microsoft.aspnet.webapi.cors”,如下图所示: 紧接着,在WebApiConfig文件中加入 config. ...

  3. C# console application executing macro function

    C#控制台应用程序,执行或运行Office的宏函数,程序如下: 应用例子:

  4. Join方法把阵列转为字符串

    string有一个方法,就是Join,可以把阵列转换为字符串: 下面是Join方法重载,可以指定那个元素开始,连续取几个元素: 可以传入一个IEnumerable<T>参数:

  5. JS控制A标记的href跳转

    var a = document.getElementById("aHref"); a.href = '/user'; //取消<a>标签原先的onclick事件,使& ...

  6. 2019-RHCE-红帽题库(稳定)

    rhce7 考题2台服务器设置yum源[aa]name=aabaesurl=ftp://server.rhce.cc/dvdenabled=1gpgcheck=0 cd /etc/yum.repos. ...

  7. (原创)Codeforces Round #550 (Div. 3) D. Equalize Them All

    D. Equalize Them All time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  8. 关于MVC模型的NSNotification用法

    对于iOS开发开发者, Model View Controller 模型能帮你快速理清开发思路,最近在使用Model给Controller传递数据时候了解了关于 NSNotification的一些用法 ...

  9. CF581C Developing Skills 模拟

    Petya loves computer games. Finally a game that he's been waiting for so long came out! The main cha ...

  10. 实施MySQL ReplicationDriver支持读写分离

    MySQL 提供支持读写分离的驱动类: com.mysql.jdbc.ReplicationDriver 替代 com.mysql.jdbc.Driver 注意,所有参数主从统一: jdbc:mysq ...