当前位置: 首页 > 面试题库 >

.css()是否自动添加供应商前缀?

金毅
2023-03-14
问题内容

我有一些代码:

$("#" + this.id).css("border-radius",this.radius + "px");
$("#" + this.id).css("-moz-border-radius",this.radius + "px");
$("#" + this.id).css("-webkit-border-radius",this.radius + "px");

我正在尝试通过使用JSON来应用这样的行(如jQuery文档中所示)或完全删除供应商前缀版本来改善此类行。

.css()更改元素上的CSS属性时,jQuery的方法是否自动应用任何必需的供应商前缀?


问题答案:

正如@zeroflagL所写,自jQuery1.8.0起.css()确实添加了浏览器特定的前缀。

在早期版本中,jQuery不会自动完成此操作.css()。您将必须自己完成操作,也可以使用jQuery.cssHooks()来添加供应商前缀。

(function($) {
  if ( !$.cssHooks ) {
    throw("jQuery 1.4.3+ is needed for this plugin to work");
    return;
  }

  function styleSupport( prop ) {
    var vendorProp, supportedProp,
        capProp = prop.charAt(0).toUpperCase() + prop.slice(1),
        prefixes = [ "Moz", "Webkit", "O", "ms" ],
        div = document.createElement( "div" );

    if ( prop in div.style ) {
      supportedProp = prop;
    } else {
      for ( var i = 0; i < prefixes.length; i++ ) {
        vendorProp = prefixes[i] + capProp;
        if ( vendorProp in div.style ) {
          supportedProp = vendorProp;
          break;
        }
      }
    }

    div = null;
    $.support[ prop ] = supportedProp
    return supportedProp;
  }

  // check for style support of your property 
  // TODO by user: swap out myCssPropName for css property
  var myCssPropName = styleSupport("myCssPropName");

  // set cssHooks only for browsers that
  // support a vendor-prefixed border radius
  if (myCssPropName && myCssPropName !== 'myCssPropName') {
    $.cssHooks["myCssPropName"] = {
      get: function(elem, computed, extra) {
        // handle getting the CSS property
        return $.css(elem, myCssPropName);
      },
      set: function(elem, value) {
        // handle setting the CSS value
        elem.style[myCssPropName] = value;
      }
    };
  }
})(jQuery);


 类似资料:
  • 问题内容: 除了以下列表之外,还有其他CSS供应商前缀对于_Web开发_很重要吗?我的定义正确吗?我是否应该更具体地介绍移动浏览器(例如移动Webkit) (Konqueror, 非常 古老的Safari) (Firefox) (歌剧) (IE浏览器) (Safari,Chrome) 请问这个名单(其中还包含,和)的附加价值什么? 问题答案: 这些是我知道的: 微软 微软办公软件 Mozilla

  • 问题内容: …是一个巨大的痛苦。 有没有图书馆/框架/更好的方法来做到这一点?最好只用一行JS? 问题答案: 我不知道有哪个库可以执行此操作,但是如果它们都只是 前缀( 即名称或语法没有区别),那么自己编写函数将是微不足道的。 然后您可以在大多数情况下使用它。

  • 问题内容: 鉴于我实际上并不担心向后兼容性(我在探索基于CSS3和HTML5的设计,而不是依赖于图形等),使用CSS这样的好处是什么: 在 刚刚 使用: 后者似乎在大多数现代浏览器中都可以正常工作(明显的除外::p看着您IE!虽然我认为它可能在IE9中可以工作,但目前无法在Mac上进行测试) 。 我看到东西了吗?我们需要使用上面特定于浏览器的代码吗?还是所有浏览器都在努力支持这些标准? 问题答案:

  • 问题内容: 我使用webkit / mozilla边框半径和框阴影CSS属性,但我希望CSS进行验证(当前不验证)。有没有办法让它验证? 问题答案: 不,它们是浏览器特定的属性,没有在标准CSS规范中定义。 话虽如此,他们正确地遵循了CSS特定于供应商扩展的规则。它只是不在W3C官方CSS规范中。

  • 我是否正确理解: > 使用Rancher,您可以自行托管Kubernetes群集,还可以使用aws、google等云提供商。。。同时 如果2.是正确的,是否有可能在自托管库伯内特斯集群和云提供商库伯内特斯集群之间分配负载? 如果自托管集群的资源耗尽,是否也可以优先使用自托管集群,然后使用云提供商集群并使用集群自动缩放器扩展集群?