[Modernizr] (http://modernizr.com/) permet de détecter facilement les caractéristiques d'un navigateur afin de prévoir une solution de repli éventuelle, un Fallback ou Failback.
Cependant, et comme la ressource est rare, il peut être judicieux de détecter quelques caractéristiques, directement, sans librairie.
Toutes les détections que nous présentons ont été testées dans les principaux navigateurs, c'est-à-dire qu'elles ne provoquent pas d'erreurs : la syntaxe est conforme comme l'indique [JsHint] (http://jshint.com/) et universelle comme le confirme [JavaScript compatibility checker] (http://jscc.info/). Elles permettront d'y puiser de l'inspiration pour d'autres développements.
Attention ! certaines propriétés sont redondantes.
Contrairement à [Modernizr] (http://modernizr.com/), la balise <html>
ne recoit des classes supplémentaires que si le support n'est pas présent. (S'agit-il de la meilleure méthode ? !)
A été choisi, bien entendu, de ne pas utiliser classList
pour la rétro-compatibilité !
La conception de sites conformes à l'état de l'art nécessite de s'affranchir d'un support dans tous les navigateurs. Ainsi, la version 2 de jQuery n'est supportée qu'à partir de la version 9 d'Internet Explorer.
flex
permet de créer des gabarits de mise en page sans recourir aux flottants, dans l'attente de la généralisation du prometteurgrid-layout
.supportFlex()
table
permet de créer des gabarits de mise en page en stimulant un tableau avec des lignes et des colonnes.supportTableGrid()
rem
permet de dimensionner les éléments sur la base d'une unité définie enroot
, sans les inconvénients de la cascade.supportRem()
svg
permet d'utiliser des images au format Scalable Vector Graphics (Svg).supportSvg()