javascript - CSS 属性的跨浏览器动态设置

标签 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.getComputedStyleelement.currentStyle[type],但是这些方法获取样式,我不能用它们来设置。

有什么办法可以为旧的 IE 做到这一点吗?

我不想使用 jQuery 或任何其他 JS 库,谢谢。

最佳答案

默认方式是 element.style.property = "value",例如:

document.getElementById("id").style.width = "50px";

没有理由不工作。但是,作为替代方案,可以考虑在类中设置 css 样式,并通过 className 属性将其添加到元素中。它得到广泛支持:

CSS:

.myClass { width: 50px; }

js:

document.getElementById("id").className = "myClass";



编辑

另一种方法,在 IE8+ 中工作(如果你真的不需要任何更低的东西)将实际的 style 属性设置为 DOM 元素,这样你就可以将属性作为参数:

http://jsfiddle.net/ppf5qcvo/

function setStyle(element,property,target){
    element.setAttribute("style", property + ":" + target);
}
var el = document.getElementById("test");
setStyle(el, "color", "red");

关于javascript - CSS 属性的跨浏览器动态设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536993/

相关文章:

javascript - 当我将鼠标悬停在 Google map v3 中的特定区域时,如何更改鼠标光标?

javascript - 为接受事件的函数调用设置超时在 IE7 中不起作用

javascript - 添加 Bootstrap 轮播组件

javascript - 如何在 jQuery 中调用带有参数的 JavaScript 函数?

javascript - Ul li 在 Less 或 jQuery 中使用 If 条件进行列计数

css -  IE6+UTF-8 问题

css - IE 11 中的多个背景

jquery - Youtube 模式弹出窗口关闭问题

css - 如何修复 Primefaces Datatable 列宽并实现内部单元格滚动

jquery - 单击另一个按钮后如何将导航菜单按钮返回到以前的样式