UNPKG

modernizr

Version:

Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.

39 lines (37 loc) 1.22 kB
/*! { "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) { var elems = elem.getElementsByTagName('div'); var correctWidths = true; for (var i = 0; i < 5; i++) { correctWidths = correctWidths && elems[i].offsetWidth === i % 2 + 1; } Modernizr.addTest('nthchild', correctWidths); }, 5); });