将所有以供应商为前缀的变体分配给样式

时间:2012-07-17 00:15:54

标签: javascript css css3 stylesheet

Modernizr提供了一种testAllProps()方法,可方便地测试给定的所有供应商前缀样式,以查看当前运行的浏览器是否支持该样式。

但是我没有达到我需要实际从javascript分配这些属性的程度,因为各种原因归结为有条件地链接CSS文件过于繁琐。

例如,我可以构建一个数组和一个例程,将每个供应商特定的样式分配给我的目标元素的样式:

['mozTransitionDuration', 'webkitTransitionDuration', 'oTransitionDuration', 'msTransitionDuration', 'transitionDuration'].map(function(s){ element.style.s = "style_setting"; });

好吧,这可能会产生一堆错误,因为我会尝试将“style_setting”分配给4或5个未定义的值。

有没有人知道什么才能减轻痛苦?

2 个答案:

答案 0 :(得分:2)

可能最好使用一个了解这些内容的现有库:

Prefix Free将允许您从CSS分配样式而无需供应商前缀。还有一个jQuery Plugin,它允许您从JavaScript中执行相同操作。

答案 1 :(得分:2)

在设置值之前,请检查属性是否为undefined

['mozTransitionDuration', 'webkitTransitionDuration', 'oTransitionDuration', 'msTransitionDuration', 'transitionDuration']
    .map(function(s) {
        if (element.style[s] != undefined) element.style[s] = "style_setting";
    });