Ladytron a écrit :
Il doit y avoir une solution en positionnement relatif (flottant) à ton problème.
La solution que j'ai donnée était un peu une solution de facilité. D'ailleurs, je viens de la tester, et ça a l'air de marcher avec IE6, mais le bloc aligné à droite est décalé d'un pixel. C'est pas flagrant, mais c'est déjà ça…
Normalement, c'est tout à fait possible avec des flottants. Mais là, le positionnement flottant n'était pas une obligation, donc bon, autant aller au plus simple.
Pour ce qui est d'éviter le positionnement absolu : un bloc en positionnement absolu s'alongera normalement si son contenu (en texte par exemple) augmente, à moins de lui avoir donné une hauteur fixe. Par contre, les autres éléments de la page ne tiennent plus compte du bloc en positionnement absolu, et quand le bloc en absolu s'allonge, il ne repousse pas vers le bas les autres blocs.
Dans le cas d'éléments comme un logo ou un élément flash, le problème ne se pose pas. Mais effectivement, on évitera le positionnement absolu pour des blocs censés accueillir un contenu important.
Au passage, je reviens là-dessus :
Ladytron a écrit :
une solution en positionnement relatif (flottant)
Houlà houlà, il y a des confusions ici !
Le positionnement :
Il peut être statique (static), relatif (relative) ou absolu (absolute). Par défaut, un élément est en positionnement statique. Comme c'est la valeur par défaut, on écrit rarement
position: static;, mais on pourrait. Le positionnement relatif fonctionne comme le positionnement statique, c'est à dire que l'élément prend une place dans la page en fonction de son emplacement dans le code… par contre, on peut le décaler à partir de cette position. Le positionnement absolu, enfin, permet de donner la position exacte d'un élément dans son bloc parent de référence. Si aucun des blocs parents de l'élément n'est référent (c'est à dire qu'ils sont tous en positionnement statique, par défaut), c'est l'élément
html qui sert de référent.
Le comportement flottant :
Le comportement flottant ou non flottant d'un bloc est indépendant de son positionnement. Ce sont d'ailleurs deux propriétés CSS différentes. Le éléments flottants "flottent" par dessus les autres éléments, qui se disposent alors sous eux comme s'ils n'étaient pas là… à l'exception des éléments en ligne et en particulier du texte, qui est repoussé. Le positionnement flottant permet aussi de dire à un élément de se placer le plus à gauche ou le plus à droite possible à l'intérieur de son élément parent. Les éléments flottants ne peuvent pas se chevaucher entre eux.