Sha256: 54d7da6e1378a24c567a92a036da48efc48acd7e2ba55bd4e41996b48ef46045

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

// selectorSupported lovingly lifted from the mad italian genius, diego perini
// http://javascript.nwbox.com/CSSSupport/
function selectorSupported(selector){

  var support, link, sheet, doc = document,
      root = doc.documentElement,
      head = root.getElementsByTagName('head')[0],

      impl = doc.implementation || {
              hasFeature: function() {
                  return false;
              }
      },

  link = doc.createElement("style");
  link.type = 'text/css';

  (head || root).insertBefore(link, (head || root).firstChild);

  sheet = link.sheet || link.styleSheet;

  if (!(sheet && selector)) return false;

  support = impl.hasFeature('CSS2', '') ?

              function(selector) {
                  try {
                      sheet.insertRule(selector + '{ }', 0);
                      sheet.deleteRule(sheet.cssRules.length - 1);
                  } catch (e) {
                      return false;
                  }
                  return true;

              } : function(selector) {

                  sheet.cssText = selector + ' { }';
                  return sheet.cssText.length !== 0 && !(/unknown/i).test(sheet.cssText) && sheet.cssText.indexOf(selector) === 0;
              };

  return support(selector);

};

Modernizr.addTest('target',function(){
  return selectorSupported(':target');
}).addTest('not',function(){
  return selectorSupported(':not(p)');
}).addTest('last-child',function(){
  return selectorSupported(':last-child');
}).addTest('nth-child',function(){
  return selectorSupported(':nth-child(2)');
}).addTest('nth-of-type',function(){
  return selectorSupported(':nth-of-type(2)');
})

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
susy-2.0.0.alpha.4 docs/source/javascripts/modernizr.selectors.js
susy-2.0.0.alpha.3 docs/source/javascripts/modernizr.selectors.js
susy-2.0.0.alpha.2 docs/source/javascripts/modernizr.selectors.js
susy-2.0.0.alpha.1 docs/source/javascripts/modernizr.selectors.js