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

Assign all vendor-prefixed variants to style

本文关键字:分配 样式 前缀 供应商      更新时间:2023-11-09

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

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

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

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

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

有人知道什么能让这件事不那么痛苦吗?

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

Prefix Free将允许您在没有供应商前缀的情况下从CSS分配样式。还有一个jQuery插件,它将允许您从JavaScript中执行同样的操作。

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

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