Des styles en fonction du navigateur: le retour de la vengeance
J'ai de nouveau changé la gestion des CSS dans les pages du site, toujours pour contourner les limitations de IE concernant la propriété position: fixed
.
La solution précédente utilisait un script javascript qui permettait de choisir entre deux feuilles de styles en fonction du navigateur de l'internaute. Deux grosses limitations la rendait cependant insatisfaisante:
- Il fallait que la gestion du javascript soit activée dans le navigateur; sans cela, la mise en page était totalement chamboulée.
- Elle ne tenait pas compte du fait que les navigateurs Mozilla ou Opera peuvent se faire passer pour IE (afin d'éviter notamment les problèmes sur certains sites).
La nouvelle bidouille fait toujours appel au javascript, et ne résout pas totalement ces limitations, mais elle est plus acceptable dans le sens où il n'est plus nécessaire d'avoir la gestion du javascript activée pour afficher la bonne mise en page. La feuille de styles modèle est en effet chargée pour tous, puis le script javascript charge une seconde feuille avec quelques correctifs pour Internet Explorer. Résultats:
- Si vous utilisez Mozilla ou Opera, qu'ils sont identifiés comme tels, la bonne mise en page du site sera utilisée, que vous ayez la gestion du javascript activée ou non.
- Si vous utilisez ces deux navigateurs avec la gestion du javascript activée et que vous vous identifiez comme IE, vous aurez la mise en page spécial Microsoft.
- Si vous utilisez ces deux navigateurs en vous identifiant comme IE mais que la gestion du javascript est désactivée, vous aurez la bonne mise en page.
Bon, cela peut paraître toujours aussi compliqué et bancal, mais je trouve cette solution (un peu) moins contraignante que la précédente. En attendant le jour où Microsoft daignera fournir un navigateur web qui respecte les standards du web.