使用jQuery设置所有供应商前缀版本"width:calc ..."?

Cod*_*kie 5 css jquery vendor-prefix

我正在使用一个使用jQuery的项目,我需要使用jQuery动态设置基于calc()的宽度.问题是,对于calc工作,CSS需要看起来像这样:

CSS

width: -moz-calc(33% - 50px);
width: -webkit-calc(33% - 50px);
width: calc(33% - 50px);
Run Code Online (Sandbox Code Playgroud)

当我尝试使用jQuery时$(selector).css('width', 'calc(33% - 50px)'),我无法使用多个供应商前缀版本的calc设置宽度.在jQuery中处理相同CSS属性的多个设置的正确方法是什么,以允许供应商前缀?

小智 0

你有没有尝试过类似的事情:

calc = "calc(33% - 50px)";

if ($.browser.webkit) {
  calc = "-webkit-"+calc;
}

$(selector).css('width',calc);
Run Code Online (Sandbox Code Playgroud)

  • 浏览器嗅探是一个非常非常可怕的想法。WebKit 有多种变体,其中一些可能支持 -webkit-calc,有些不支持,有些现在但将来不支持,有些具有附加功能,例如 calc 内的 attr(),有些则不等等。直到 Modernizr 支持处理 calc 的“前缀”功能的变体,我建议使用 calc 的每个前缀变体设置属性,然后读回该值以查看它是否“接受”,在这种情况下,您可以确信浏览器支持的版本计算你通过它。 (2认同)