类选项html 最后无距离,各种距离 一览无遗

offsetLeft,Left,clientLeft的区别

14441981.gif

假设 obj 为某个 HTML 控件

obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素。

obj.offsetLeft 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置,整型,单位像素。

obj.offsetWidth 指 obj 控件自身的绝对宽度,不包括因 overflow 而未显示的部分,也就是其实际占据的宽度,整型,单位像素。

obj.offsetHeight 指 obj 控件自身的绝对高度,不包括因 overflow 而未显示的部分,也就是其实际占据的高度,整型,单位像素。

我们对前面提到的 offsetParent 作个说明。

offsetParent 获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用。offsetTop 与 offsetParent 很复杂,不同浏览器有不同解释,浮动一下解释又不同了,所以我们一般只要理解通过二者可以获得控件在浏览器中的绝对位置即可。

以上属性在 FireFox 中也有效。

另外:我们这里所说的是指 HTML 控件的属性值,并不是 document.body,document.body 的值在不同浏览器中有不同解释(实际上大多数环境是由于对 document.body 解释不同造成的,并不是由于对 offset 解释不同造成的)

我们知道 offsetTop 可以获得 HTML 元素距离上方或外层元素的位置,style.top 也是可以的,二者的区别是:

一、offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。

二、offsetTop 只读,而 style.top 可读写。

三、如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。

offsetLeft 与 style.left、offsetWidth 与 style.width、offsetHeight 与 style.height 也是同样道理。

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

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

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

scrollHeight

IE、Opera 认为 scrollHeight 是网页内容实际高度,可以小于 clientHeight。

NS、FF 认为 scrollHeight 是网页内容高度,不过最小值是 clientHeight。

简单地说

clientHeight 就是透过浏览器看内容的这个区域高度。

NS、FF 认为 offsetHeight 和 scrollHeight 都是网页内容高度,只不过当网页内容高度小于等于 clientHeight 时,scrollHeight 的值是 clientHeight,而 offsetHeight 可以小于 clientHeight。

IE、Opera 认为 offsetHeight 是可视区域 clientHeight 滚动条加边框。scrollHeight 则是网页内容实际高度。

同理

clientWidth、offsetWidth 和 scrollWidth 的解释与上面相同,只是把高度换成宽度即可。

说明以上基于 DTD HTML 4.01 Transitional,如果是 DTD XHTML 1.0 Transitional 则意义又会不同,在 XHTML 中这三个值都是同一个值,都表示内容的实际高度。新版本的浏览器大多支持根据页面指定的 DOCTYPE 来启用不同的解释器

scrollTop 是“卷”起来的高度值,示例:

如果为 p 设置了 scrollTop,这些内容可能不会完全显示。

var p = document.getElementById("p");

p.scrollTop = 10;

由于为外层元素 p 设置了 scrollTop,所以内层元素会向上卷,这卷起来的部分就是 scrollTop。

scrollLeft 也是类似道理。

我们已经知道 offsetHeight 是自身元素的宽度,而 scrollHeight 是内部元素的绝对宽度,包含内部元素的隐藏的部分。上述中 p 的 scrollHeight 为 300,而 p 的 offsetHeight 为 100。

scrollWidth 也是类似道理。

IE 和 FireFox 全面支持,而 Netscape 8 和 Opera 7.6 不支持 scrollTop、scrollLeft(document.body.scrollTop、document.body.scrollLeft 除外)。

1.clientHeight, clientWidth:

这两个属性大体上显示了元素内容的象素高度和宽度.理论上说这些测量不考虑任何通过样式表加入

元素中的页边距,边框等.

2.clientLeft,clientTop:

这两个返回的是元素周围边框的厚度,如果不指定一个边框或者不定位改元素,他的值就是0.

3.scrollLeft,scrollTop:

如果元素是可以滚动的,可以通过这俩个属性得到元素在水平和垂直方向上滚动了多远,单位是象素.

对于不可以滚动的元素,这些值总是0.

4.scrollHeight,scrollWidth:

不管有多少对象在页面上可见,他们得到的是整体.

5.style.left:

定位元素与包含它的矩形左边界的偏移量

6.style.pixelLeft:

返回定位元素左边界偏移量的整数像素值.因为属性的非像素值返回的是包含单位的字符串,例如,30px. 利用这个属性可以单独处理以像素为单位的数值.

7.style:posLetf:

返回定位元素左边界偏移量的数量值,不管相应的样式表元素指定什么单位.因为属性的非位置值返回的是包含单位的字符串,例如,1.2em

top,pixelTop,posTOp这几个类比就行了.

LEFT:   为从左向右移的位置,即挂件距离屏幕左边缘的距离;

clientLeft   返回对象的offsetLeft属性值和到当前窗口左边的真实值之间的距离

offsetLeft   返回对象相对于父级对象的布局或坐标的left值,就是以父级对象左上角为坐标原点,向右和向下为X、Y轴正方向的x坐标

pixelLeft   设置或返回对象相对于窗口左边的位置

scrollWidth 是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度)。

clientWidth 是对象可见的宽度,不包滚动条等边线,会随窗口的显示大小改变。

offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变。

IE6.0、FF1.06+:

clientWidth = width + padding

clientHeight = height + padding

offsetWidth = width + padding + border

offsetHeight = height + padding + border

IE5.0/5.5:

clientWidth = width - border

clientHeight = height - border

offsetWidth = width

offsetHeight = height

(需要提一下:CSS中的margin属性,与clientWidth、offsetWidth、clientHeight、offsetHeight均无关)

offsetwidth:是元素相对父元素的偏移宽度。等于border+padding+width

clientwidth:是元素的可见宽度。等于padding+width

scrollwidth:是元素的宽度且包括滚动部分。

offsetLeft:Html元素相对于自己的offsetParent元素的位置

scrollLeft:返回和设置当前横向滚动务的坐标值

οnclick="alert('offsetLeft:'+this.offsetLeft)">

function move()

{

var d=document.getElementById("d")

a=eval(20)

d.scrollLeft+=a

}

保存为网页,运行一下,点按钮,滚动条移动

点击div,先弹出b相对于a的位置,再弹出a相对于窗口的位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/301484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为起诉最新进展,国内航司暂停运行有关客机,收买家庭不得继续抚养被解救儿童,脸书创始人后悔没早学微信,这就是今天的大新闻...

今天是3月11日农历二月初五今天星期一没带耳机线感觉这样用手机是没有灵魂的下面是今天的大新闻华为起诉最新进展(环球网)多个来自美国的消息证实,美国的联邦法院已经就华为公司起诉美国政府一案给美国政府及其多位部长发去了法院传票。上图&…

前目的地罗伯森是谁_距离目的地只剩10公里,开车师傅却在高速公路上睡着了...

钱江晚报小时新闻记者 吴崇远 通讯员 俞斐“我从杭州过来,刚才开累了,就休息了几分钟……”“杭州到嘉善那么一点路都犯困了?”4月6日凌晨4点30分,高速交警嘉兴支队值班民警在巡逻时发现,一辆厢式小货车开着双跳灯&…

WPF 写一个提醒工具软件(完整项目)

昨天整理硬盘时,偶然发现一个很久之前写的小工具,一个提醒工具。包含定时提醒,间隔提醒功能。看看效果:界面看起来也还凑合,还使用了HandyControl,有桌面托盘功能界面是下面这样的提醒窗口有两种&#xff0…

她只用1个方法,就把英语拿下了!

全世界只有3.14 % 的人关注了数据与算法之美这3招让你未来6个月讲一口流利英语怎么摆脱单词记不住?如何解决听不懂老外讲英语?让老外叹服你口语的唯一方法……请看中国著名口语教学专家写给你的一封信:亲爱的朋友:你好&#xff01…

英语计算机工程师求职信,计算机工程师英文求职信范文

计算机工程师英文求职信范文是由个人简历模板网为你提供的一份个人求职信范文,可直接使用或根据实际情况进行修改。祝您职场顺利,早日找到称心如意的工作!Dear Sir or Madam,I am writing to apply for a position as a computer engineer in…

WPF实现环(圆)形菜单

WPF开发者QQ群: 340500857 | 微信群 -> 进入公众号主页 加入组织“ 前言,接着上一篇圆形菜单。”欢迎转发、分享、点赞、在看,谢谢~。 01—效果预览效果预览(更多效果请下载源码体验):02—代码如下一、…

win7系统桌面计算机怎么打的开,windows7系统双击计算机打不开怎么解决|win7双击计算机打不开的解决方法...

运行windows7系统的时候双击"计算机"遇到打不开的情况,也不知道怎么回事,尝试用杀毒软件解决也无效。如果要查看磁盘的具体情况,都没办法查看了。针对win7双击"计算机"打不开的问题,下面小编介绍两种解决方法…

每日一笑 | 在俄罗斯人眼里,没有什么是胶带解决不了的

全世界只有3.14 % 的人关注了数据与算法之美(图片来源于网络,侵权删)

钣金缺口lisp_UG用钣金模块的放样创建天圆地方,还能学钣金展开,必看

上个给大家用“直纹”做了一个天圆地方的圆台模型,今天给大家讲解下UG钣金模块如何使用“放样弯边”做天圆地方管并展开,借用下上次的图纸数据。首先创建天圆地方钣金模型1首先新建模型,点击草图,以XY为草图平面,点击确…

我开发了一款基于web容器的前端项目容器

目前使用比较多的web容器有哪些:Apache php应用大多数用这个Nginx node应用基本都用这个Tomcat java应用基本都用这个IIS .net应用基本用这个 windows服务器才能用 linux的话有宇内大神开发的Jexus前端基本都是node应用,据我了解大体上分2种一种是 最终打…

这些Python骚操作,你值得拥有

全世界只有3.14 % 的人关注了数据与算法之美0x00 世界,你好程序员第一次接触语言或者框架,基本上都有个 Hello World 的例子,这里 Python 直接将它做成了一个包。0x01 Python 哲学Python 执行 import this 时,会打印出 Python 之禅…

晨风机器人突破限制_厉害了!工程建设领域首创!会自动测量、自动调平的测量机器人...

近日中建三局工程技术研究院自主研发的道路工程移动式高精度测量机器人在武汉四环线工程完成20余公里测试应用标志着机器人完成阶段性测试具备工程应用条件道路工程移动式高精度测量机器人是一种集自动行驶、自动调平自动设站、自动测量等功能于一身的机器人系统系首次在道路工…

晕了!这个配置值从哪来的?

如果有同事问你,数据库连接串的值和appsettings.json配的不一样,从哪来的?你能回答的出来吗?配置读取顺序ASP.NET Core 中的配置是使用一个或多个配置提供程序执行的,配置提供程序使用各种配置源从键值对读取配置数据。ASP.NET C…

client中周期性边界_「微评」增加艺术品在投资组合中的比例 推进国家艺术软实力...

艺术品作为一种兼具收藏属性和投资属性的物品,其最初被人们所接受的是其收藏属性。在进入二十一世纪后,其投资属性才逐渐显现。艺术品的双重属性增加了其投资价值,再叠加显著的顺周期性,艺术品能够在经济向好时为投资者提供超额收…

面向.NET开发人员的Dapr——分布式世界

面向.NET开发人员的Dapr——前言The world is distributed分布式世界Just ask any cool kid: Modern, distributed systems are in, and monolithic apps are out!随便问一个酷小子,他们都会说:现代、分布式系统时间已经到来,单体应用已经成为…

豆瓣最高评分8.1!万维钢:读懂这本书,你会比身边人更深的理解这个时代

▲数据汪特别推荐点击上图进入玩酷屋小木用真金白银来给大家送礼物啦,特别感谢这些年一直以来大家对我们的支持,才让我们越做越好。(点我参与送礼活动)这几年全球各大科技巨头纷纷进入人工智能领域,催生了一大批技术的…

camunda流程定义表无数据_[Python04] 学习snakemake,三步轻松搭建生信流程!

随着学习的不断深入,分析的数据越来越多。你会发现,日常生信分析不过是调用一些相同的函数或者包分析不同的数据,换汤不换药。那么,如何把分析过程流程化,让数据像工厂的流水线一样自动被处理?最简单的法子…

基于centos5.8源码安装nginx之LNMP

LNMP 指的是什么呢,这里可以“望文生义”,其是linux NGINX Mysql PHP的组合。每一种工具的安装都有其特长来吸引我们去使用它,对此就要了解其组合的各个工具的特点:Linux:不用多说,这是我们都熟知的以开…

cheatengine找不到数值_“不会找问题”,只配在底层,最高效的思维方式导图,人生开挂!...

点击右上角【关注】,每天获取企业经营管理秘籍!总裁周刊,与您一同成长!声明:文章来源于zhang_liangj,不代表高管周刊立场,如有异议,请私信!文|张良计现在,我们…

比乐高便宜十倍!4合1电动遥控积木玩法百变

▲数据汪特别推荐点击上图进入玩酷屋小木用真金白银来给大家送礼物啦,特别感谢这些年一直以来大家对我们的支持,才让我们越做越好。(点我参与送礼活动)前几天与同事在聊天,他说小时候的梦想就是拥有很多很多的玩具。没…