Javascript CSS属性的跨浏览器动态设置
我有一个函数,它获取许多数据片段,并为定义的元素设置CSS属性 代码如下:Javascript CSS属性的跨浏览器动态设置,javascript,css,internet-explorer,cross-browser,internet-explorer-6,Javascript,Css,Internet Explorer,Cross Browser,Internet Explorer 6,我有一个函数,它获取许多数据片段,并为定义的元素设置CSS属性 代码如下: function setStyle(element,property,target){ element.style[property] = target; } var EL = document.getElementById("id"); setStyle(EL,"width","50px"); 它在大多数浏览器中运行良好,但不适用于IE6-IE9 我找到了document.defaultView.getC
function setStyle(element,property,target){
element.style[property] = target;
}
var EL = document.getElementById("id");
setStyle(EL,"width","50px");
它在大多数浏览器中运行良好,但不适用于IE6-IE9
我找到了document.defaultView.getComputedStyle
和元素.currentStyle[type]
,但这些方法获取样式,我无法使用它们进行设置
有什么办法可以为老年人做到这一点吗
我不想使用jQuery或任何其他JS库,谢谢。您考虑过使用jQuery吗?它为您处理所有跨浏览器问题。您可以通过以下语句完成相同的任务:
$('#id').width('50px');
默认方式为
element.style.property=“value”
,如:
document.getElementById("id").style.width = "50px";
没有理由不起作用。但是,作为替代,考虑在类中设置CSS样式,并通过<代码>类名称< /代码>属性将其添加到元素中。它得到广泛支持:
css:
js:
编辑 另一种方法是,在IE8+中(如果您不需要更低的版本)将实际的
样式设置为DOM元素,这样您就可以获得作为参数的属性:
$('#id').css('width','50px')
准确地说。对不起!我忘了说,如果您想使用jQuery设置其他样式,我也不想使用jQuery或任何其他js库(已编辑)。我发现在这些情况下,它是一个有用的参考。我在函数中使用它,我将在函数参数中定义应该更改的属性,因此我不能使用element.style.property=“value”
编辑谢谢,但我真的需要IE6支持它
.myClass { width: 50px; }
document.getElementById("id").className = "myClass";
function setStyle(element,property,target){
element.setAttribute("style", property + ":" + target);
}
var el = document.getElementById("test");
setStyle(el, "color", "red");