Skip to content

Commit

Permalink
toggle only available when :target is supported
Browse files Browse the repository at this point in the history
  • Loading branch information
mirisuzanne committed May 16, 2012
1 parent 5dc84d8 commit 1626c65
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 2 deletions.
55 changes: 55 additions & 0 deletions docs/source/javascripts/modernizr.selectors.js
@@ -0,0 +1,55 @@
// 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)');
})
3 changes: 2 additions & 1 deletion docs/source/partials/_head.haml
Expand Up @@ -8,4 +8,5 @@
%meta{:content => "width=device-width", :name => "viewport"}

= stylesheet_link_tag "site.css"
= javascript_include_tag "modernizr-2.5.3.min.js"
= javascript_include_tag "modernizr-2.5.3.min.js"
= javascript_include_tag "modernizr.selectors.js"
3 changes: 2 additions & 1 deletion docs/source/stylesheets/_modules/_toggle.scss
Expand Up @@ -2,10 +2,11 @@
// Grid Toggle

.grid-toggle {
// display: none;
display: none;
position: absolute;
top: .5em;
right: .5em;
.target & { display: block; }
}

.on, .off {
Expand Down

0 comments on commit 1626c65

Please sign in to comment.