【问题标题】:Setting vendor styles?设置供应商样式?
【发布时间】:2011-12-21 08:00:23
【问题描述】:

我想用 Javascript 设置供应商样式,如下所示:

elem.style.mozBorderRadius = '5px';

这可能吗?如果有,怎么做?

【问题讨论】:

    标签: javascript browser css


    【解决方案1】:

    您可以像这样检查并设置它:

    if (elem.style.MozBorderRadius !== undefined)
      elem.style.MozBorderRadius = "5px";
    

    您也可以使用webkitBorderRadius 为 webkit 执行此操作,如下所示:

    if (elem.style.MozBorderRadius !== undefined)
       elem.style.MozBorderRadius = "5px";
    else if (elem.style.webkitBorderRadius !== undefined)
       elem.style.webkitBorderRadius = "5px";
    

    确保像我上面那样将它包装在if() 中,这样在不支持它的浏览器中就不会出错。

    【讨论】:

    • 在您发布之前一秒钟通过执行 for ( prop in elem.style ) 循环并追踪结果来解决这个问题。谢谢!
    • 你不是说if (typeof elemen.style.MozBorderRadius !== undefined)吗?
    • 另外,在哪个浏览器中设置elem.style.MozBorderRadius 会引发警告或错误?我找不到任何东西。 webkitBorderRadius 也是如此。
    • @Mathias - 不,不是在这种情况下......你可以在这里看到这个工作(在 IE、Chrome、Firefox 中测试):jsfiddle.net/X8839
    • @Mathias - 调用本身可能不会出错,因为elem.style 存在并且您只是在这种情况下扩展它,但是任何可能正在寻找具有属性集的元素的代码等可能会产生非常不可预测的结果,最好不要设置它并导致任何错误。
    猜你喜欢
    • 2015-11-14
    • 2014-03-20
    • 2015-06-10
    • 1970-01-01
    • 2016-04-20
    • 2011-01-10
    • 2020-10-28
    • 1970-01-01
    • 2018-04-10
    相关资源
    最近更新 更多