我在完整的css中創建了一個佈局。但是,某些瀏覽器(如IE6)不支持box-shadow(..和-webkit-box-shadow或-moz-box-shadow)。我想檢查它是否不受支持,然後添加其他樣式。如何檢查是否支持css box-shadow(jQuery)?
這在jQuery中可能如何?
馬爾蒂·萊恩
我在完整的css中創建了一個佈局。但是,某些瀏覽器(如IE6)不支持box-shadow(..和-webkit-box-shadow或-moz-box-shadow)。我想檢查它是否不受支持,然後添加其他樣式。如何檢查是否支持css box-shadow(jQuery)?
這在jQuery中可能如何?
馬爾蒂·萊恩
var check = document.createElement('div');
var shadow = !!(0 + check.style['MozBoxShadow']);
if(shadow)
alert('moz-box-shadow available');
這是做它自己的方式。其他可靠的方法是modernizr
庫,它爲您做功能檢測。
沒有jQuery的需要在所有在這裏。
-1爲DIY。 +1爲Modernizr .... 淨效應0.:P – 2010-08-19 17:55:28
@Stefan:那麼到底什麼是-1? :p – jAndy 2010-08-19 18:15:36
不知道@Stefan對DIY有什麼問題。 「WebkitBoxShadow」和「boxShadow」可能會進行相同的檢查,但是要想清楚這一點並不難。 – user113716 2010-08-19 18:32:42
在Quick Tip: Detect CSS3 Support in Browsers with JavaScript中描述了一個用於檢查瀏覽器支持哪些CSS功能的簡潔函數(純JavaScript,無jQuery)。
功能如下:
var supports = (function() {
var div = document.createElement('div'),
vendors = 'Khtml Ms O Moz Webkit'.split(' '),
len = vendors.length;
return function(prop) {
if (prop in div.style) {
return true;
}
prop = prop.replace(/^[a-z]/, function(val) {
return val.toUpperCase();
});
while (len--) {
if (vendors[len] + prop in div.style) {
// browser supports box-shadow. Do what you need.
// Or use a bang (!) to test if the browser doesn't.
return true;
}
}
return false;
};
})();
用法是這樣的:
if (supports('boxShadow')) {
// Do whatever
}
它的工作就像一個魅力對我來說! :-)
重複? http://stackoverflow.com/questions/1342994/check-browser-css-property-support – user113716 2010-08-19 17:41:35