Bonjour tout le monde,
Dans la quête de l'adaptation intelligente de design pour tailles d'écran différentes (CSS responsive web design), les contraintes sont généralement nombreuses si l'on veut que tous les navigateurs soient pris en compte.
J'en arrive à la technique suivante :
Puis, à l'intérieur de la feuille styles.css j'opère éventuellement les distinctions de largeurs différentes à l'aide de @media.
Le principe et les contraintes sont nombreux :
- Le maximum de navigateurs / périphériques doivent être ciblés
- Les alternatives JavaScript telles que Respond.js doivent être évitées.
- Deux feuilles de styles séparées = performances optimisées (pas de chargements inutiles d'éléments pour les cacher ensuite)
- Eviter @import pour des raisons de performance
- Choix de device-width et non de width pour application selon taille des écrans et non des fenêtres de navigateurs
- media="screen and (min-device-width:481px)" -> styles.css pour desktop (sauf IE < 9)
- if lt IE 9 -> styles.css pour IE desktop
- media="handheld, screen and (max-device-width:480px)" -> mobile.css pour petits écrans et bonus pour les préhistoriques (handheld)
- if IEmobile -> mobile.css spécifique pour IE mobile sur Windows Mobile
A tester au maximum, mais cela me semble assez stable et "universel" (?)
Tout retour, commentaire, sera vivement apprécié
EDIT : modification du commentaire conditionnel pour IE mobile
Modifié par Raphael (29 Oct 2011 - 17:48)
Dans la quête de l'adaptation intelligente de design pour tailles d'écran différentes (CSS responsive web design), les contraintes sont généralement nombreuses si l'on veut que tous les navigateurs soient pris en compte.
J'en arrive à la technique suivante :
<link rel="stylesheet" href="styles.css" media="screen and (min-device-width:481px)">
<!--[if lt IE 9]> <link rel="stylesheet" href="styles.css" media="screen"> <![endif]-->
<link rel="stylesheet" href="mobile.css" media="handheld, screen and (max-device-width:480px)">
<!--[if IEMobile 7]> <link rel="stylesheet" href="mobile.css" media="screen"> <![endif]-->
Puis, à l'intérieur de la feuille styles.css j'opère éventuellement les distinctions de largeurs différentes à l'aide de @media.
Le principe et les contraintes sont nombreux :
- Le maximum de navigateurs / périphériques doivent être ciblés
- Les alternatives JavaScript telles que Respond.js doivent être évitées.
- Deux feuilles de styles séparées = performances optimisées (pas de chargements inutiles d'éléments pour les cacher ensuite)
- Eviter @import pour des raisons de performance
- Choix de device-width et non de width pour application selon taille des écrans et non des fenêtres de navigateurs
- media="screen and (min-device-width:481px)" -> styles.css pour desktop (sauf IE < 9)
- if lt IE 9 -> styles.css pour IE desktop
- media="handheld, screen and (max-device-width:480px)" -> mobile.css pour petits écrans et bonus pour les préhistoriques (handheld)
- if IEmobile -> mobile.css spécifique pour IE mobile sur Windows Mobile
A tester au maximum, mais cela me semble assez stable et "universel" (?)
Tout retour, commentaire, sera vivement apprécié
EDIT : modification du commentaire conditionnel pour IE mobile
Modifié par Raphael (29 Oct 2011 - 17:48)