[!NOTE] Opmerking over het moderne web: Modernizr was essentieel tijdens de overgang naar HTML5 en CSS3. Moderne ontwikkeling gebruikt meestal
@supportsin CSS en directe API-controles ('fetch' in window) in JavaScript.
Modernizr detecteert de beschikbaarheid van HTML5- en CSS3-functies in de browser van de gebruiker als betrouwbaar alternatief voor user-agent sniffing.
Hoe Modernizr werkt
Na het laden voert Modernizr functietests uit en:
- Voegt klassen zoals
.flexboxof.no-flexboxtoe aan het hoofdelement<html>. - Stelt een globaal JavaScript-object
Modernizrbeschikbaar met booleaanse testeigenschappen.
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
Voorwaardelijke stijlen in CSS
Richt je direct in stylesheets op ondersteunde versus niet-ondersteunde browsers:
/* Fallback layout for older browsers */
.no-flexbox .container {
display: block;
float: left;
}
/* Modern flexbox layout */
.flexbox .container {
display: flex;
justify-content: space-between;
}
Functiedetectie in JavaScript
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(showMap);
} else {
showAddressInputFallback();
}
if (Modernizr.localstorage) {
localStorage.setItem('theme', 'dark');
}
if (Modernizr.webgl) {
initialize3DCanvas();
}
Veelgebruikte detecteerbare functies
CSS-functies
flexbox,cssgridopacity,rgba,hslaboxshadow,textshadow,borderradiuscssanimations,csstransforms,csstransforms3d,csstransitionsbackgroundsize,borderimage,fontface
HTML5- & Opslag-API's
canvas,canvastext,webgllocalstorage,sessionstorage,indexeddbgeolocation,history,websockets,webworkersvideo,audio,svg,inlinesvg