[!NOTE] Σημείωση σύγχρονου ιστού: Το Modernizr ήταν απαραίτητο κατά τη μετάβαση σε HTML5 και CSS3. Σήμερα προτιμάται το
@supportsστο CSS και άμεσοι έλεγχοι API ('fetch' in window) στη JavaScript.
Το Modernizr ανιχνεύει τη διαθεσιμότητα σύγχρονων δυνατοτήτων HTML5 και CSS3 στον browser του χρήστη, αντικαθιστώντας τον εύθραυστο έλεγχο user-agent.
Πώς λειτουργεί το Modernizr
Κατά τη φόρτωση, εκτελεί δοκιμές δυνατοτήτων και:
- Προσθέτει κλάσεις όπως
.flexboxή.no-flexboxστο ριζικό στοιχείο<html>. - Εκθέτει ένα καθολικό αντικείμενο JavaScript
Modernizrμε λογικές ιδιότητες δοκιμών.
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script>
Υπό όρους μορφοποίηση σε CSS
Στοχεύστε υποστηριζόμενους και μη υποστηριζόμενους browsers απευθείας στο CSS:
/* Fallback layout for older browsers */
.no-flexbox .container {
display: block;
float: left;
}
/* Modern flexbox layout */
.flexbox .container {
display: flex;
justify-content: space-between;
}
Ανίχνευση δυνατοτήτων σε JavaScript
if (Modernizr.geolocation) {
navigator.geolocation.getCurrentPosition(showMap);
} else {
showAddressInputFallback();
}
if (Modernizr.localstorage) {
localStorage.setItem('theme', 'dark');
}
if (Modernizr.webgl) {
initialize3DCanvas();
}
Συνήθεις ανιχνεύσιμες δυνατότητες
Δυνατότητες CSS
flexbox,cssgridopacity,rgba,hslaboxshadow,textshadow,borderradiuscssanimations,csstransforms,csstransforms3d,csstransitionsbackgroundsize,borderimage,fontface
APIs HTML5 & Αποθήκευσης
canvas,canvastext,webgllocalstorage,sessionstorage,indexeddbgeolocation,history,websockets,webworkersvideo,audio,svg,inlinesvg