Gorkk
vendredi 14 janvier 2005 à 22:57
C'est tout à fait possible de le faire en CSS même pour IE. Il faut juste cependant utiliser un CSS hack pour émuler la propriété fixed. Bien sûr comme toujours il y a le revers de la médaille, et en l'occurence il me semble que ça empêche d'utiliser après le position: absolute; comme il est censé être utilisé (pour IE).
Personnellement j'ai eu un bug en essayant de l'implémenter (j'ai probablement du faire une erreur quelque part, mais ça me gave de chercher

), vu que je me suis retrouvé sous IE avec 2 scroll bars verticale pour une implémentation avec une colonne fixe à gauche, l'une fonctionnelle, l'autre désactivée (la deuxième ne devrait pas s'afficher).
Tu trouveras les explications en français avec des exemples pour l'implémentation de ce hack :
UNE ZONE FIGEE A L'ECRAN (en bas) SOUS IE (voir aussi l'exemple 2 qui montre une zone fixe en haut et à gauche).
Bien entendu il y a des avis assez partagés sur l'utilisation de CSS Hacks. Mon avis est qu'il faut au maximum éviter de les utiliser (quitte à se passer de certains atouts des CSS, du moins pour IE, ce qui donnera un rendu un peu différent). Le problème des CSS hacks étant que comme c'est une exploitation d'un bug de rendu des navigateurs en question, ça pourrait changer le comportement de ton code lorsque ces navigateurs seront mis à jour et corrigeront ces bugs (en même temps d'ici à ce qu'IE soit mis à jour et qu'ils y corrigent les bugs...). Il faut garder à l'esprit que ton site devrait être accessible et lisible correctement pour des personnes utilisant des navigateurs ne supportant pas CSS et/ou Javascript (des lecteurs vocaux par exemple, ou des navigateurs texte, ne pas oublier que certains ont CSS avec JS désactivé et inversement). Au passage, il est conseillé pour Javascript de séparer structure et comportement, comme avec CSS on sépare structure et présentation avec des feuilles de styles externes, voir
Séparer le comportement de la structure.
Evidémment également, même si toi tu utilises IE, bien vérifier que ton site s'affiche correctement sous Firefox/Netscape et Opera au minimum (les deux autres principaux navigateurs sous Windows), le meilleur moyen étant de commencer par vérifier que ton code est valide :
Sujet parlant des différents validateurs de code