[!NOTE] Współczesna uwaga: Modernizr był kluczowy w okresie przejścia na HTML5 i CSS3. Obecnie stosuje się głównie
@supportsw CSS oraz bezpośrednie sprawdzanie API ('fetch' in window) w JavaScript.
Modernizr wykrywa dostępność nowoczesnych funkcji HTML5 i CSS3 w przeglądarce użytkownika, zastępując zawodne sprawdzanie nagłówka user-agent.
Jak działa Modernizr
Po załadowaniu Modernizr uruchamia testy funkcji i:
- Dodaje klasy takie jak
.flexboxlub.no-flexboxdo elementu głównego<html>. - Udostępnia globalny obiekt JavaScript
Modernizrz właściwościami logicznymi wyników testów.
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
Warunkowe stylowanie w CSS
Kieruj reguły CSS bezpośrednio do przeglądarek wspierających i niewspierających funkcji:
/* Fallback layout for older browsers */
.no-flexbox .container {
display: block;
float: left;
}
/* Modern flexbox layout */
.flexbox .container {
display: flex;
justify-content: space-between;
}
Wykrywanie funkcji w JavaScript
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(showMap);
} else {
showAddressInputFallback();
}
if (Modernizr.localstorage) {
localStorage.setItem('theme', 'dark');
}
if (Modernizr.webgl) {
initialize3DCanvas();
}
Popularne wykrywane funkcje
Funkcje CSS
flexbox,cssgridopacity,rgba,hslaboxshadow,textshadow,borderradiuscssanimations,csstransforms,csstransforms3d,csstransitionsbackgroundsize,borderimage,fontface
HTML5 i API pamięci
canvas,canvastext,webgllocalstorage,sessionstorage,indexeddbgeolocation,history,websockets,webworkersvideo,audio,svg,inlinesvg