Nouveau tutoriel: Maîtriser le positionnement CSS dans toutes les situations
Benjamin De Cock nous fait cadeau d'un très bon article sur le positionnement CSS: Maîtriser le positionnement CSS dans toutes les situations, sous-titré «Comprendre le positionnement CSS et opter pour des choix adaptés à des situations précises».

Il ne faut cependant pas voir dans cet article une «bible» du positionnement CSS. Il n'est pas exhaustif et ne cherche pas à l'être. Il s'agit essentiellement d'illustrer une démarche qui consiste à faire des choix rationnels en matière de positionnement CSS. Quelle option de positionnement choisir parmi les différentes possibilités? Benjamin propose la logique suivante:
- Tant que cela est possible, on gardera les éléments dans le flux (
position: static; float: none;). - Si le positionnement en flux ne suffit pas (par exemple lorsqu'il faut mettre côte à côte deux blocs), on utilisera la propriété
positionet notamment le positionnement absolu, sauf lorsque les conséquences de ce positionnement ne sont pas gérables. - Enfin, si l'utilisation de
positionne convient pas, on pourra utiliser la propriétéfloat, en se rappelant qu'elle n'est pas initialement prévue pour les usages qu'on en fait (ce qui explique quelques difficultés connues de ceux qui sont coutumiers des flottants).
Ça se discute...
Comme tout parti-pris, celui-ci ne fera sans doute pas l'unanimité. Comme l'indique une première réaction que je me permet de citer:
(...) les solutions proposées en utilisant le positionnement absolu prennent des hypothèses très fortes qui sont en contradiction avec un site dynamique ou le contenu n'est pas maitrisé. (...)
Ces contraintes me semble également difficilement gérables dans un contexte de réutilisation des CSS.
Une observation qui me semble très juste. Nul doute que Benjamin apportera quelques précisions sur ces points. 
On aurait pu rajouter que...
La propriété position a beau être davantage prévue pour positionner les principaux blocs d'une page que la propriété float, elle ne représente pas forcément la meilleure solution offerte par la spécification CSS 2 pour juxtaposer des blocs[1]. Dans l'absolu, on devrait plutôt utiliser en priorité:
display: inline-block;display: table-cell;
Nous ne les utilisons pas ou peu car ces valeurs de la propriété display[2] sont mal supportées par les navigateurs. La valeur inline-block n'est pas supportée par Firefox jusqu'à la version 2 (la version 3, actuellement en beta, corrige enfin le tir!) et partiellement supportée par Internet Explorer (version 7 incluse)[3]. Les valeurs table, table-row et surtout table-cell ne sont pas supportées par Internet Explorer (version 7 incluse).
On gardera toutefois ces options en tête. Il se pourrait qu'elles soient, d'ici quelques années, des solutions de choix largement utilisables, tandis que l'utilisation extensive des flottants sera considérée comme une relique du passé. 
--
Florent V.
Notes
[1] C'est à dire mettre des blocs côte à côte horizontalement: c'est l'utilisation la plus courante du positionnement CSS.
[2] Vous connaissez sans doute déjà display: block, display: inline et peut-être aussi display: none.
[3] Pour plus de précisions, on pourra lire Cross Browser Support for inline-block Styling.
Par Collectif Alsacréations - mercredi 5 décembre 2007 à 10:25
Tutoriels Alsa - #405 - Lu 4998 fois - Intérêt du billet: 3.76(17) - Fil RSS








Trackbacks
Aucun trackback pour le moment.
Les trackbacks pour ce billet sont fermés.
Evaluez ce billet
Commentaires
Le mercredi 5 décembre 2007 à 12:03, par tfe :: site :: #
Le mercredi 5 décembre 2007 à 23:43, par Benjamin D.C. :: site :: #
Le jeudi 6 décembre 2007 à 11:58, par goetsu :: site :: #
Le samedi 8 décembre 2007 à 01:58, par bzh :: #
Le samedi 8 décembre 2007 à 02:37, par Victor BRITO :: site :: #
Le lundi 10 décembre 2007 à 11:30, par Laurent Denis :: #
Le lundi 10 décembre 2007 à 11:39, par Laurent Denis :: site :: #
Le lundi 10 décembre 2007 à 13:08, par Raphael :: site :: #
Le mardi 11 décembre 2007 à 10:24, par Arsene :: #
Le mardi 11 décembre 2007 à 22:56, par Oliv G. :: site :: #
Le mercredi 12 décembre 2007 à 19:22, par jean marc :: #
Le lundi 17 décembre 2007 à 12:07, par Hermann :: #
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.