彻底搞懂网页中的各种定位

bytepioneer
• 阅读 767

1.offset属性

(1)offsetHeight和 offsetWidth

获取元素的高度和宽度

offsetWidth = padding+border+width

offsetHeight = padding+border+width

(2)offsetTop和 offsetLeft

获取距离第一个有定位的(除了设置static)父级盒子的左边和右边的距离,这个距离是指从子盒子的边框到父盒子的padding的距离,不算大盒子的border

(3)offsetParent

返回距离第一个有定位的父盒子

彻底搞懂网页中的各种定位

2.scroll属性

(1)scrollHeight和 scrollWidth

scrollHeight和scrollWidth分为两种情况,如果盒子里面的里面没有超出就是盒子的大小,如果超出了形成滑动那将是这个里面所有内容的高度,包含超出部分的

(2)scrollTop和 scrollLeft

获取的的是超出当前元素的距离​

彻底搞懂网页中的各种定位

3.client属性

(1)clientHeight和 clientWidth

clientHeight = padding + height;

clientWidth = padding + width;

这个计算的高度宽度不包含边框

(2)clientTop和 clientLeft

计算的是边框的大小,就是紫色的高度和宽度

clientTop = 5px;

彻底搞懂网页中的各种定位

4.其他属性

(1).getBoundingClientRect

不管在什么位置都获取的都是距离页面显示区左上角的位置,这个函数返回的是ClientRect属性,分别代表: bottom: 底部距离页面顶部的距离

height: 高度 包含边框

left: 左边距离页面顶部的距离

right: 右边距离页面顶部的距离

top: 顶部距离页面顶部的距离

width: 宽度 包含边框

x: 左边距离页面顶部的距离

y: 右边距离页面顶部的距离

垂直滚动的时候y和top都会发生变化,但是都是获取的网页右上角的位置,

这个函数一般使用于当前元素是否出现在界面中用于懒加载。

(2).鼠标点击获取位置的属性

pageX,pageY 是距离屏幕上方的位置+滑动的位置
clientX,clientY 是距离屏幕上方的位置 不计算滑动

(3).获取屏幕的宽高

innerHeight和innerWidth获取屏幕可见区域的宽高
浏览器兼容的写法 var height =window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;

                觉得本文对你有帮助,添加[自学前端之路]公众号

彻底搞懂网页中的各种定位

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
小嫌 小嫌
4年前
css中块状元素和内联元素
CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。块状元素块状元素特点1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。2、元素的高度、宽度、行高以及顶和底边距都可设置。3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。常用的块状元素有:、
Stella981 Stella981
4年前
Python+Selenium自动化篇
本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。0.元素定位方法主要有:id定位:find\_element\_by\_id('')name定位:find\_element\_by\_name('')class定位:find\_element\_by\_class\_name(''
Wesley13 Wesley13
4年前
CSS块级元素与行内元素
CSS块级元素与行内元素行内元素与块状元素1、块级元素:可以设置width,height属性。行内元素:设置width和height无效,其宽度随其元素的内容(文字或者图片等)的宽度而变化。可以通过lineheight设置行高(行高和height是不同的东西)。2、块级元素:可以设置margin和padd
Stella981 Stella981
4年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
4年前
CSS 分类 (Classification)
★★CSS分类属性(Classification)★★⑴CSS分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素,使用绝对值来定位元素,以及元素的可见度。⑵下面是常用的属性以及描述:!(https://oscimg.oschina.net/oscnet/00cb565
Stella981 Stella981
4年前
HTML中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth scrollHeight: 获取对象的滚动高度。 scrollLeft: 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 scrollTop: 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 
Wesley13 Wesley13
4年前
HTML元素和事件对象中的各种宽高和位置
HTML元素和事件对象中的各种宽高和位置标签:js\TOC\经常被一堆的xxxWidth,xxxLeft弄混,统一整理一下。1\.HTML元素中的宽高和位置属性clientWidth表示元素的内部宽度,以像素计。该属性包括
Wesley13 Wesley13
4年前
CSS复习笔记二:浮动和清除浮动
 一、浮动的性质1、浮动的元素脱离标准文档流,并且可以设置宽度和高度。2、浮动的元素相互贴靠3、浮动的元素有“文字环绕”效果       含有图片的div浮动,段落不浮动,文字会环绕图片。4、div浮动了且没有设置宽度,那么将自动收缩为内容的宽度。浮动(脱标)的元素是不能把容器惩处高度的。二、浮动的清除
Wesley13 Wesley13
4年前
HTML表格的基本结构标记
<table标记1.基本格式:<table属性1"属性值1"属性2"属性值2"......表格内容</table2.table标记的属性  width属性  表示表格的宽度,他的值可以是像素(px)也可以是父级元素的百分比(%)  height属性  表示表格的高度,他的值可以是像素(px