日期:2014-05-16  浏览次数:20493 次

【在线等】=======offsetLeft 取到奇怪的值=======
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题文档</title>

    <script type="text/javascript">
        window.onload=function()
        {
            [color=#FF0000]//在ie上取到的是5,可在火狐上取到的是 284,这差距也太大了把??
            //offsetLeft 不是取这个元素距父元素的左边距离吗??[/color]
            alert(document.getElementById("borderDivII").offsetLeft);
        };
    </script>
</head>

<body>
   <div style="float:left;width:270px;height:200px">
      d
   </div>
                
   <div style="float:left;width:460px;height:200px;border:cyan solid 1px;">
      <div id="borderDivII" style="width:98%;height:50px;border:gray Dashed 1px;margin:5px 5px 5px 5px;"></div>
   </div>     
</body>
</html>





//在ie上取到的是5,可在火狐上取到的是 284,这差距也太大了把??
//offsetLeft 不是取这个元素距父元素的左边距离吗??

------解决方案--------------------
offsetTop
获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算顶端位置。

offsetLeft
获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置。

offsetHeight
获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度。
IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。 
NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。

offsetWidth
获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度。

offsetParent
获取定义对象 offsetTop 和 offsetLeft 属性的容器对象的引用

------解决方案--------------------
http://www.cnblogs.com/panjun-Donet/articles/1294033.html
你看看这里面介绍的你就会明白怎么回事
------解决方案--------------------
IE:
var op = document.getElementById("borderDivII");
var oleft = op.offsetLeft;
while(op.offsetParent!=null){
op = op.offsetParent;
oleft += op.offsetLeft;
}
alert(oleft);

------解决方案--------------------
探讨
<div>
<div id="ddd"></div>
</div>

我这样写的话,获取 id为ddd 的div 的 offsetParent 都是body 为什么?(IE和火狐一样)

------解决方案--------------------
这里我说的有点歧义了,应该说你的DIV的容器是BODY