Skip to content

Commit

Permalink
Merge pull request Modernizr#685 from emilchristensen/master
Browse files Browse the repository at this point in the history
Add feature detect for nth-child()
  • Loading branch information
Stu Cox committed Jul 1, 2013
2 parents 348e122 + 2d07922 commit ae327f1
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions feature-detects/css/nthchild.js
@@ -0,0 +1,43 @@
/*!
{
"name": "CSS :nth-child pseudo-selector",
"caniuse": "css-sel3",
"property": "nthchild",
"tags": ["css"],
"notes": [
{
"name": "Related Github Issue",
"href": "https://github.com/Modernizr/Modernizr/pull/685"
},
{
"name": "Sitepoint :nth-child documentation",
"href": "http://reference.sitepoint.com/css/pseudoclass-nthchild"
}
],
"authors": ["@emilchristensen"],
"warnings": ["Known false negative in Safari 3.1 and Safari 3.2.2"]
}
!*/
/* DOC
Detects support for the ':nth-child()' CSS pseudo-selector.
*/
define(['Modernizr', 'testStyles'], function( Modernizr, testStyles ) {
// 5 `<div>` elements with `1px` width are created.
// Then every other element has its `width` set to `2px`.
// A Javascript loop then tests if the `<div>`s have the expected width
// using the modulus operator.
testStyles('#modernizr div {width:1px} #modernizr div:nth-child(2n) {width:2px;}', function( elem ) {
Modernizr.addTest('nthchild', function() {
var elems = elem.getElementsByTagName('div'),
test = true;

for (var i = 0; i < 5; i++) {
test = test && elems[i].offsetWidth === i % 2 + 1;
}

return test;
});
}, 5);
});

0 comments on commit ae327f1

Please sign in to comment.