最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to check if css box-shadow is supported (jQuery)? - Stack Overflow

programmeradmin4浏览0评论

I'm creating a layout in full css. However, some browser (such as IE6) do not support box-shadow (.. and -webkit-box-shadow or -moz-box-shadow). I would like to check if it's not supported and then add other styles.

How's this possible in jQuery?

Martti Laine

I'm creating a layout in full css. However, some browser (such as IE6) do not support box-shadow (.. and -webkit-box-shadow or -moz-box-shadow). I would like to check if it's not supported and then add other styles.

How's this possible in jQuery?

Martti Laine

Share Improve this question edited Aug 19, 2010 at 17:45 jAndy 236k57 gold badges313 silver badges363 bronze badges asked Aug 19, 2010 at 17:38 Martti LaineMartti Laine 13k22 gold badges70 silver badges103 bronze badges 1
  • 3 Duplicate? stackoverflow./questions/1342994/… – user113716 Commented Aug 19, 2010 at 17:41
Add a ment  | 

2 Answers 2

Reset to default 9
var check = document.createElement('div');

var shadow = !!(0 + check.style['MozBoxShadow']);
if(shadow)
   alert('moz-box-shadow available');

That is the doing-it-yourself way. Other reliable way is the modernizr library, which does feature detection for you.

http://www.modernizr./

No jQuery needed at all here.

A neat function (pure JavaScript, no jQuery) to check which CSS features are supported by the browser is described in Quick Tip: Detect CSS3 Support in Browsers with JavaScript.

Function is as follows:

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;
   };
})();

Usage is like this:

if (supports('boxShadow')) { 
   // Do whatever
}

It worked like a charm for me! :-)

发布评论

评论列表(0)

  1. 暂无评论