使用浏览器前缀应用内联样式

我发现了一个小技巧,允许我使用jquery为带有供应商前缀的类添加样式:

var myTransform = ($.browser.webkit) ? '-webkit-transform' : ($.browser.mozilla) ? '-moz-transform' : ($.browser.msie) ? '-ms-transform' : ($.browser.opera) ? '-o-transform' : 'transform'; var myCSSObj = {}; myCSSObj[myTransform] = 'translate('+centrepos+'px, 0px)'; $("div.current").css(myCSSObj); 

我不完全确定这是如何工作的,所以如果有人能解释我会非常感激。

但是,我的问题是关于应用此方法并将其添加到jquery片段的内联样式。 目前我有以下内容,但它是手动编写的:

 $fragment = $('
');

当它被附加到dom时,我想给这个容器一个初始位置。 如何在不必手动添加每个浏览器的前缀的情况下添加代码?

如果我理解正确,您希望自动化为您的css属性添加特定于供应商的前缀的过程。

jquery核心中包含一个API,允许您执行此操作。 jQuery.cssHooks

在文档中有一个关于对border-radius进行类似思考的好例子。

在这里看到这个jsfiddle:

http://jsfiddle.net/molokoloco/f6Z3D/

你可以查看lea verou的无前缀: http ://leaverou.github.com/prefixfree/

-prefix-free允许您在任何地方仅使用未加前缀的CSS属性。 它在幕后工作,只在需要时将当前浏览器的前缀添加到任何CSS代码中。