[!NOTE] Notă web modern: Modernizr a fost esențial în tranziția spre HTML5 și CSS3. Dezvoltarea modernă folosește de obicei
@supportsîn CSS și verificări directe ('fetch' in window) în JavaScript.
Modernizr detectează disponibilitatea funcționalităților HTML5 și CSS3 în browserul utilizatorului, înlocuind verificarea fragilă a user-agent-ului.
Cum funcționează Modernizr
La încărcare, Modernizr rulează teste de capabilități și:
- Adaugă clase precum
.flexboxsau.no-flexboxpe elementul rădăcină<html>. - Expune un obiect JavaScript global
Modernizrcu proprietăți booleene de testare.
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
Stilizare condițională în CSS
Vizează direct în foile de stil browserele compatibile și incompatibile:
/* Fallback layout for older browsers */
.no-flexbox .container {
display: block;
float: left;
}
/* Modern flexbox layout */
.flexbox .container {
display: flex;
justify-content: space-between;
}
Detectarea funcționalităților în JavaScript
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(showMap);
} else {
showAddressInputFallback();
}
if (Modernizr.localstorage) {
localStorage.setItem('theme', 'dark');
}
if (Modernizr.webgl) {
initialize3DCanvas();
}
Funcționalități comune detectabile
Funcționalități CSS
flexbox,cssgridopacity,rgba,hslaboxshadow,textshadow,borderradiuscssanimations,csstransforms,csstransforms3d,csstransitionsbackgroundsize,borderimage,fontface
HTML5 și API-uri de stocare
canvas,canvastext,webgllocalstorage,sessionstorage,indexeddbgeolocation,history,websockets,webworkersvideo,audio,svg,inlinesvg