1

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

但是,我还没有到需要从 javascript 实际分配这些属性的地步,因为各种原因归结为它太麻烦而无法有条件地链接 CSS 文件。

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

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

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

有没有人知道什么可以减轻这种痛苦?

4

2 回答 2

2

最好使用一个了解这些东西的现有库:

Prefix Free将允许您从 CSS 分配样式而无需供应商前缀。还有一个 jQuery Plugin可以让你从 JavaScript 做同样的事情。

于 2012-07-17T00:23:30.483 回答
2

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

['mozTransitionDuration', 'webkitTransitionDuration', 'oTransitionDuration', 'msTransitionDuration', 'transitionDuration']
    .map(function(s) {
        if (element.style[s] != undefined) element.style[s] = "style_setting";
    });
于 2012-07-17T00:25:30.543 回答