我有一个 <div id="dd1" style="left:30px;top:100px;float:left;">xxx</div> 想用js 代码改变div 所在的位置 document.getElementById("dd1").offsetLeft=80; 语句没报错,可它的位置却没有变,还是在30的位置
 而 alert(document.getElementById("dd1").offsetLeft);的时候,已变成80了,
 这是怎么回事呢,
 请各位大侠帮我解决一下。不胜感谢。
  
 

解决方案 »

  1.   

    你要设置position:absolute;脱离文档流
    float:left可以不用了。
      

  2.   


    <body>
    <div id="dd1" style="position:absolute;left:100;">111111111111</div>
    </body>
    <script>
    document.getElementById("dd1").style.left='280';
    </script>
      

  3.   


    这哥们忘记写单位了<div id="dd1" style="position:absolute;left:100px;">111111111111</div>
    </body>
    <script>
    document.getElementById("dd1").style.left=280+"px";
    </script>
      

  4.   

    ls正解,W3C CSS2.1标准里规定length值都是需要由 数字+单位 构成的.left值和top值属于此类的值,所以,应该加单位。
      

  5.   

    5楼正解
    IE的话不写单位好像也没事,FF就必须得写单位了
    LZ注意,不光是加了position:absolute,还得将 offsetLeft 改为 style.left
    offsetLeft 是只读的,改不了,会报“对象不支持此操作”
      

  6.   

    left和top必须要有position来支持
      

  7.   

    加上'px'这个单位,至少在ff下style.top,style.left,element.offsetLeft和element.offsetTop都是需要加单位的。
      

  8.   

    position:absolute
    obj.style.left=280这样绝对行的。
      

  9.   

    position:absolute
    obj.style.left=280 + "px"这样绝对行的。或者style.pixelLeft = 280;
    这两种区别left带px,pixelLeft不带px
      

  10.   

    首先是绝对定位position:absolute,然后再是styel.left,offsetLeft改变不了的
      

  11.   

    大家一致认为是先position:absolute再left    难道position:ralative就不行吗
    看需要吧 还有
    obj.style.left=280这个IE下还是可以的   
      

  12.   

    回楼上
    position:relative,不行