Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > 网页制作 > offsetParent和parentElement的区别
【标  题】:offsetParent和parentElement的区别
【关键字】:offsetParent,parentElement
【来  源】:http://www.cublog.cn/u/19228/showart.php?id=214660

offsetParent和parentElement的区别

Your Ad Here

parentElement 在msdn的解释是Retrieves the parent object in the object hierarchy.

而offsetParent在msdn的解释是Retrieves a reference to the container object that defines the offsetTop and offsetLeft properties of the object. 这个解释有些模糊。我们再来看看他的remarks

Most of the time the offsetParent property returns the body object.

大多说offsetParent返回body


Note  In Microsoft® Internet Explorer 5, the offsetParent property returns the TABLE object for the TD object; in Microsoft® Internet Explorer 4.0 it returns the TR object. You can use the parentElement property to retrieve the immediate container of the table cell.
 
对于IE 5.0以上,TD的offsetParent返回Table。

但是msdn并没有讨论在页面td元素中存在绝对/相对定位时offsetParent的值。

以下是我个人总结的规律

在td中的元素会把第一个绝对/相对定位的hierarchy parent当作offsetParent,如果没有找到需要分三种情况讨论

  一,如果该元素没有绝对/相对定位,则会把td当作offsetParent

  二,如果该元素绝对/相对定位并且table没有绝对/相对定位,则会把body当作offsetParent

  三,如果该元素绝对/相对定位并且table绝对/相对定位,则会把table当作offsetParent

看一下示例代码

1.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv">sondiv</div></div></TD>
  </TR>
</TABLE>


运行结果parentdiv.offsetParent.tagName IS "body"

                sondiv.offsetParent.id     IS "parentdiv"

2.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "body"

                sondiv.offsetParent.id     IS "parentdiv"

3.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD>
  </TR>
</TABLE>


运行结果parentdiv.offsetParent.tagName IS "TD"

                sondiv.offsetParent.tagName    IS "body"

4.<BODY >
<TABLE BORDER=1 ALIGN=right>
  <TR>
    <TD ID=oCell><div id="parentdiv" >parentdiv<div id="sondiv">sondiv</div></div></TD>
  </TR>
</TABLE>


运行结果parentdiv.offsetParent.tagName IS "TD"

                sondiv.offsetParent.tagName    IS "TD"

5.<BODY >
<TABLE BORDER=1 ALIGN=right style="position:relative">
  <TR>
    <TD ID=oCell><div id="parentdiv" style="position:relative" >parentdiv<div id="sondiv" style="position:relative">sondiv</div></div></TD>
  </TR>
</TABLE>

运行结果parentdiv.offsetParent.tagName IS "Table"

                sondiv.offsetParent.tagName    IS "parentdiv" 


如何测试搜索引擎的索引量大小(前篇):【上一篇】
execCommand的用法:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • asp分页显示时单引号引发的一个错误!
  • Struts+Hibernate开发中须注意的地方
  • 大型运维环境实施安全加固
  • Internet Explorer 7 Beta 2 卸载工具包
  • blog开张了
  • ASP运行中常见的错误类型
  • sun巡检命令(转storm)
  • 我的满腹痴情只化成哽咽在喉咙里的
  • 无盘/终端网络常用通信协议
  • 一个网民的历程
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.