position fixed à utiliser avec modération
Par Laurentj le jeudi, juillet 28 2005, 10:31 - Technologies Web - Lien permanent
Aprés trois semaines de vacances (oui c'était bien et c'était dans mon salon qui est maintenant tout beau tout neuf, et en Bretagne dans le Finistère Nord), et quelques jours de réadaptation à la vie quotidienne trépidente en région parisienne, je peux reprendre mes activités normales.
Comme parler des standards par exemple, et plus particulièrement aujourd'hui du style position:fixed. Certains en abusent un peu trop. Comme par exemple mettre ce style sur un menu latérale. Soyez en 800*600, ou avec des troubles de la vue qui vous oblige à zoomer, et le bas du menu vous sera inaccessible... Vous aurez beau scroller, vous n'arriverez pas à le lire en entier.
Le position:fixed est à utiliser avec modération, et pas sur n'importe quoi. Un bandeau horizontal à la limite. Et encore, en diminuant la largeur de la fenêtre, il peut se mettre à augmenter en hauteur (surtout si il est conséquent à la base), jusqu'à rendre inaccessible le contenu qu'il y a en dessous.
Commentaires
Sans compter les problèmes de prise en charge par IE! Etre conforme aux standards, c'est bien, être conforme ET interopérable, c'est mieux (la prise en charge d'un site par IE c'est une condition primaire d'accessibilité, non?)
En meme temps ce qui est bien avec les feuille de style c'est qu'on les utilisent ou pas ... donc le position fixed reste de toute façon une technique accessible.
Dam
Mitternacht : à ma connaissance, l'utilisation du
position:fixedn'a aucune influence sur la mise en page dans IE. En effet, avec cette position, le contenu n'est pas sortie du flux (pas comme en absolute par exemple), la boîte a donc son emplacement réservé dans la page. Ainsi, avant scrolling, le résultat du design est identique à un position:relative. IE ne connaissant pas fixed, il met la position par défaut en "relative".Dam: oui mais bon ce n'est pas forcément agréable de lire un document html sans feuille de style ;-)
C'est là que les feuille de style est encore plus fort !!! les gens avec des config attypique peuvent utiliser des feuilel de style utilisateur qui modifient la feuille de style de la page ... Mais c'est vrai qu'il est toujours bon d'y penser à priori :)
Bien sûr, je pensais précisément aux cas où une div fixée masque une portion de contenu, qui devient visible au défilement lorsque le positionnement fixe est pris en charge, mais reste caché sous IE. Comment ça je fais des chichis?
Ok, je vois ce que tu veux dire Mitternacht :-) Effectivement dans ce cas, c'est pas top pour IE...
Pas tout à fait ;)
La position fixe est une extension de la position absolue, et, comme celle-ci, sort totalement le contenu du flux.
IE respecte la gestion d'erreur CSS face à une position:fixed : il ignore la propriété, et la boîte reste donc dans son schéma de positionnement par défaut, c'est à dire la position:static : autrement-dit, le flux. La position relative, qui n'est pas un positionnement à proprement parler, mais un simple effet dans le flux, n'a rien à voir là-dedans.
cela-dit, quelque-soit l'explication théorique, le résultat est identique et le problème d'utilisation de la position fixe que tu soulèves est tout à fait fondé.
Mitternacht : la solution de repli pour IE consiste à jouer sur la cascade, et à indiquer une position absolue avant la position fixe, pour la même boîte. IE placera la boîte en position absolue et ignorera la position fixe, contrairement aux autres navigateurs.