嘿,
我正在努力将样式属性设置为通过javascript创建的div。
流程是:
<div id="test">
style="top: 20px; left: 10px; margin: 0px; position: absolute;"
一切都适用于所有其他浏览器但是当涉及IE时,事情就是行不通。 如何在IE中设置这些样式属性?到目前为止,这段代码:
var div = document.getElementById('test');
div.style.left = "10px";
div.style.top = "20px";
div.style.margin = "0px";
div.style.position = "absolute !important";
我能够设置顶部,边距和位置。 Style.left是不可能的。
在所有浏览器中处理样式属性时,最好的方法是什么?
@IE不工作版本:7,8。 (没有在6和9下尝试过)
答案 0 :(得分:5)
经过几个小时调试代码后,我终于成功了。 问题是我有一个返回数字的变量。该变量是一些计算的基础,它在设置div.style.left时使用。因此变量有时会返回导致疼痛的NaN。 :) 感谢大家所付出的努力和时间! :)
答案 1 :(得分:2)
交易时最好的方法是什么 在所有浏览器中使用样式属性?
只设置div.className
并将所有CSS移动到CSS文件。
答案 2 :(得分:2)
function MuoveOnClickPosition(YourDIVObject) {
//numeric variables.
tempX = event.clientX;
tempY = event.clientY;
// String variables
var X, Y ;
X = tempX + 'px';
Y = tempY + 'px';
document.getElementById(YourDIVObject).style.left = X;
document.getElementById(YourDIVObject).style.top = Y;
}
//应该工作!有时IE需要字符串格式的'XXXpx'。它取决于DOC类型。
答案 3 :(得分:1)
!重要的是杀死绝对的位置。甚至不适用于Firefox。在JSBIN
上测试过答案 4 :(得分:1)
div.style.cssText="top: 20px; left: 10px; margin: 0px; position: absolute;"
请记住div'es位置是相对于其父级的 - 一些旧的IE需要将父元素位置设置为相对或绝对,具体取决于doctype。