如何在IE中设置对象的边距?

时间:2008-11-25 17:15:56

标签: javascript css internet-explorer

我正在尝试从JavaScript设置对象的边距。我能够在Opera& Firefox,但代码在Internet Explorer中不起作用。

这是我的JavaScript:

function SetTopMargin (ObjectID, Value)
{
    document.getElementById(ObjectID).style.marginTop =  Value.toString() + "px";
}

它被称为:

SetTopMargin("test_div_id", 100);

所以有人知道一些可以在Internet Explorer中运行的代码吗?

3 个答案:

答案 0 :(得分:33)

[2016年更新]在所有当前浏览器(包括IE8 +)上,您的代码

document.getElementById(ObjectId).style.marginTop = Value.ToString() + 'px';

工作正常。

非常旧的 IE(< 8)版本上,您必须使用此非标准版本:

document.getElementById(ObjectId).style.setAttribute(
   'marginTop', Value.ToString() + 'px');

编辑 - 来自OP删除的评论:

  

请注意,虽然您可以在当前IE中使用style.setAttribute('margin-top',..),但8及更早版本需要style.setAttribute('marginTop',..)

答案 1 :(得分:4)

您的代码可以在IE8中使用。

<html>
  <head>
    <script type="text/javascript"> 
    function SetTopMargin (ObjectID, Value)
    {   
      document.getElementById(ObjectID).style.marginTop =  Value.toString() + "px";
    }
    </script>
 </head>
 <body>
   <button id="btnTest" onclick="SetTopMargin('btnTest', 100);">Test</button>
 </body>
</html>

在IE6中,经过短暂的停顿后它似乎也能正常工作。

答案 2 :(得分:-3)

首先,你应该使用像jQuery或Dojo这样的javascript库。我还推荐www.debugbar.com来检查IE的DOM。

关于您的问题,elem.style = "margin: 10px"应该可以在IE中使用。

希望这有帮助!