检测对多个背景图像的支持?

时间:2010-09-10 21:37:40

标签: javascript css cross-browser

我真的想利用多种后台支持(Webkit,Firefox 3.6+),但我想为不支持它的浏览器提供替代解决方案。 (IE,Firefox 3.5 - )。

有没有办法检测对此CSS功能的支持?或者我是否必须使用浏览器嗅探?

编辑:欢迎使用Javascript解决方案

3 个答案:

答案 0 :(得分:5)

我知道这是一个相对陈旧的问题,但我想我会添加一个可用于嗅探这个的JS片段。代码取自Modernizr源代码,但稍作修改:

function multipleBgTest(){

  var el_style = document.createElement("div").style;
  el_style.cssText = 'background:url(//:),url(//:),red url(//:)';

  // If the UA supports multiple backgrounds, there should be three occurrences
  // of the string "url(" in the return value for el_style.background
  return new RegExp("(url\\s*\\(.*?){3}").test(el_style.background);

}

如果函数返回true,则支持它,否则它将返回false

答案 1 :(得分:2)

使用http://www.modernizr.com/。这是一段javascript,它将根据浏览器的功能设置类。然后,您可以在CSS中使用这些类。

答案 2 :(得分:2)

在纯CSS中没有办法检测是否支持多个背景。但是您可以指定默认背景,然后指定多个背景,这些背景可以解决处理值的错误,并且如果不支持则保持旧。