IE7以上(不是火狐):

  父级没有定位:

    本身没有定位:

      ==> offsetParent:body

    本身定位为:absolute/relative:

      ==> offsetParent:body

  

  父级有定位:

    本身没有定位:

       ==> offsetParent:定位父级

    本身定位为:absolute/relative:

       ==> offsetParent:定位父级

    本身定位为: fixed

      ==> offsetParent: null

火狐

  父级没有定位:

    本身没有定位:

      ==> offsetParent:body

    本身定位为: absolute/relative:

      ==> offsetParent:body

    本身定位为:fixed

      ==> offsetParent:body

  父级有定位:

    本身没有定位:

      ==> offsetParent:定位父级

    本身定位为: absolute/relative:

      ==> offsetParent:定位父级

    本身定位为:fixed

      ==> offsetParent:body

IE7以下:

  父级没有定位:

    本身没有定位:

      ==>offsetParent:body

    本身定位为absolute/relative

      ==>offsetParent:body

    本身定位为fixd

      ==>offsetParent:null

   父级有定位:

    本身没有定位:

      ==>offsetParent:定位父级

    本身定位为absolute/relative

      ==>offsetParent:定位父级

    本身定位为fixd

      ==>offsetParent:null

总结:

  offsetParent(如果body和html直接的margin被清掉)

  本身定位为fixed:

    ==> offsetParent: null( IE7以上(不是火狐) )

  本身定位不为fixed:

    ==> offsetParent:定位父级

haslayout

  IE7以下,如果当前元素的某个父级触发了haslayout,

    那么offsetParent就会指向到这个layout特性的父结点上

拓展 :

offsetWidth,offsetHeight     ==>     border-box

  clientWidth,clientHeight      ==>    padding-box

  

注意:

  window.onload = function(){

    //根标签的clientWidth(document.documentElement.clientWidth)并不是可视区域的宽度,而是视口的宽度
                var w = document.documentElement.clientWidth;
                var w2 = document.documentElement.offsetWidth;
                console.log(w,w2);
            }

  在IE10及IE10以下 , 根标签的 clientWidth 和 offsetWidth 统一被指定为视口的宽度。

HTMLElement.offsetParent(offsetLeft和offsetTop参照offsetParent的内边距边界)的更多相关文章

  1. offsetleft、offsetTop、offsetParent的兼容性问题

    先来看看offsetParent返回的是什么值 ele.offsetParent返回的是ele元素最近的并且是定位过(relative,absolute)的父元素,如果没有父元素或者是父元素中没有一个 ...

  2. 简单理解offsetleft、offsetTop、offsetParent

    先来看看offsetParent返回的是什么值 ele.offsetParent返回的是ele元素最近的并且是定位过(relative,absolute)的父元素,如果没有父元素或者是父元素中没有一个 ...

  3. 【JavaScript】全面解析offsetLeft、offsetTop

    假设 obj 为某个 HTML 控件.obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素. obj.offsetRight 指 obj 距离右方或上层控件的位置,整型, ...

  4. 盒子 offsetLeft、offsetTop、offsetWidth、getBoundingClientRect等属性解释

    offsetLeft 获取的是忽略 margin 当前元素距离上一级父节点(有没有设置position,有的话依据父节点,没有的话依据页面最左端这时候不管滚动条移到哪) 当前元素向左的位置 记住它会将 ...

  5. offsetLeft与offsetTop详解

    offsetLeft与offsetTop使用方法一样,只是一个是找距离定位父级(position:relative)左边的距离,一个是找距离定位父级上边的距离 没有定位则找body,我们还是看看ie7 ...

  6. js中的offsetParent,offsetLeft,offsetTop及jquery的offset(),position()比较

    1.offsetParent 元素的offsetParent并不是元素的父元素,判断元素的offsetParent要根据以下情况: 1)当DOM结构层次中的元素均没有进行css定位(设置positio ...

  7. 1.offsetParent,offsetLeft,offsetTop

    offsetParent <!doctype html> <html> <head> <meta charset="utf-8"> ...

  8. 通过一个实例理解 offsetLeft,offsetTop; offsetWidth , offsetHeight

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

  9. 【转】获取到元素的 offsetLeft 、offsetTop属性不正常的解决方法。

    原地址:http://hi.baidu.com/huidust520/item/85da006981a6c635ad3e834e 我在工作中遇到个问题: 在ie7下和360浏览器下获取到的  offs ...

随机推荐

  1. nohup npm start &启动之后关闭终端程序没有后台运行

    感谢:https://blog.csdn.net/nsj820/article/details/5862231 “在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命 ...

  2. (三)运用Python模块和包

    1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...

  3. MyEclipse CI 2019.4 完美激活版(含离线包+激活工具+安装教程)

    ps:MyEclipse目前已更新至2019.12.5,但是目前还没有有效的激活方式,本次文章以2019.4为例; 该文章使用离线安装的方式进行安装,在线安装不保证不会出现各类小问题,离线安装包及激活 ...

  4. 群晖DSM修改ssh权限实现免密码登陆

    问题 使用ssh-id-copy正确上传公钥后依然无法免密码登陆 原因 群晖DSM中.ssh文件夹权限不当 解决 赋予正确权限 admin@DiskStation:/var/services/home ...

  5. 前端:将网站打造成单页面应用SPA

    前端:将网站打造成单页面应用SPA   前言 不知你有没有发现,像Github.百度.微博等这些大站,已经不再使用普通的a标签做跳转了.他们大多使用Ajax请求替代了a标签的默认跳转,然后使用HTML ...

  6. 2019牛客多校第一场H XOR 线性基模板

    H XOR 题意 给出一组数,求所有满足异或和为0的子集的长度和 分析 n为1e5,所以枚举子集肯定是不可行的,这种时候我们通常要转化成求每一个数的贡献,对于一组数异或和为0.我们考虑使用线性基,对这 ...

  7. PP: Shape and time distortion loss for training deep time series forecasting models

    Problem: time series forecasting Challenge: forecasting for non-stationary signals and multiple futu ...

  8. jquery tagsinput监听输入、修改、删除事件

    个人博客 地址:http://www.wenhaofan.com/article/20181118192458 由于度娘上的根本搜不到对应的操作,连该插件对应的文档介绍都没有,不得已debug了源码才 ...

  9. Intellij IDEA史上最全快捷键大全

    古人有云:工欲善其事,必先利其器,要是只是手握利器,而不能发挥其最大的效益,那无异于赤手空拳,对敌对垒. 那古人所云,未得其精髓,只能为碎语闲言尔. 自动代码 常用的有fori/sout/psvm+T ...

  10. static静态不是很静

    在类中定义变量时,不会开辟存储空间,只有类定义一个对象时才会开辟类中成员变量的内存空间,且建立一个对象开辟一次,大小与类中的成员变量及函数有关.而static在静态区开辟内存空间,不占用内存空间. 1 ...