10. Saisi d'une illumination subite, j'ai cru voir une solution à mon problème (qui est de placer des textes autour d'une image): Je place mes textes avec left:100% (ce qui est à droite de l'image, quelle que soit la taille de l'image), puis après je joue avec top et bottom, comme
ceci:
<p>1</p><p>2</p><p>3</p>
<div class="pere" style="position:absolute; background-color:#ffffaa;">
<p>Je suis le pere 1</p><p>Je suis le pere 2</p><p>Je suis le pere 3</p>
<p class="fils" style="margin:0; padding:0; position:absolute; bottom:0%; left:100%; background-color:#aaffff;">Tel père, tel fils 1</p>
<p class="fils" style="margin:0; padding:0; position:absolute; top:0%; left:100%; background-color:#aaffff;">Tel père, tel fils 2</p>
<p class="fils" style="margin:0; padding:0; position:absolute; margin-top:65px; top:100%; left:100%; background-color:#aaffff;">Tel père, tel fils3</p>
</div>
11. Ouais, ça donne quelque chose... Mais j'ai encore des doutes: Sur FF, quelqu'un sait pourquoi la couleur de fond (qui devrait être bleue) a disparu? Et sur IE, pourquoi la largeur des blocs bleus est si étroite? Bon, on m'a déjà dit que sur IE il faut toujours spécifier la largeur d'un bloc. À priori il me semble que ça peut poser problème suivant les cas, mais dans le mien je sais que la largeur c'est 200px (c'est le design qui le dit),
donc:
<p>1</p><p>2</p><p>3</p>
<div class="pere" style="position:absolute; background-color:#ffffaa;">
<p>Je suis le pere 1</p><p>Je suis le pere 2</p><p>Je suis le pere 3</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; bottom:0%; left:100%; background-color:#aaffff;">Tel père, tel fils1</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; top:0%; left:100%; background-color:#aaffff;">Tel père, tel fils 2</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; margin-top:65px; top:100%; left:100%; background-color:#aaffff;">Tel père, tel fils 3</p>
</div>
12. Ouais, ouais, ouais. On s'approche. Je ne vais pas crier victoire encore. J'ai la marge à gauche et à droite de la photo, à respecter. Mais il me semble qu'en utilisant
un peu de margin ça devrait aller:
<p>1</p><p>2</p><p>3</p>
<div class="pere" style="margin-left:85px; margin-right:65px; position:absolute; background-color:#ffffaa;">
<p>Je suis le pere 1</p><p>Je suis le pere 2</p><p>Je suis le pere 3</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; bottom:0%; left:100%; background-color:#aaffff;">Tel père, tel fils1</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; top:0%; left:100%; background-color:#aaffff;">Tel père, tel fils 2</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; margin-top:65px; top:100%; left:100%; background-color:#aaffff;">Tel père, tel fils 3</p>
</div>
13. Presque! Je brule! Je me demande pourquoi la marge de gauche est respectée, par contre celle de droite est complètement ignorée (sur les deux browsers c'est la même chose, donc il doit y avoir une raison). À tout hasard, je remplace
le margin par le padding. Dans ma tête c'est presque la même chose, sauf que le padding se trouve à l'intérieur du bord, et le margin à l'extérieur. Cependant le résultat es visiblement différent:
<p>1</p><p>2</p><p>3</p>
<div class="pere" style="padding-left:85px; padding-right:65px; position:absolute; background-color:#ffffaa;">
<p>Je suis le pere 1</p><p>Je suis le pere 2</p><p>Je suis le pere 3</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; bottom:0%; left:100%; background-color:#aaffff;">Tel père, tel fils1</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; top:0%; left:100%; background-color:#aaffff;">Tel père, tel fils 2</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; margin-top:65px; top:100%; left:100%; background-color:#aaffff;">Tel père, tel fils 3</p>
</div>
[EDIT]En y reflechissant, c'est logique: La "surface" d'un container arrive jusqu'au bord. Le margin est à l'extérieur du bord, et ne fait pas partie de la "surface" du container, tandis que le padding est à l'intérieur du bord.[EDIT]
14. Bon, là je suis presque content. Je remplace encore les textes pas beaux par
une vraie image:
<p>1</p><p>2</p><p>3</p>
<div class="pere" style="padding-left:85px; padding-right:65px; position:absolute; background-color:#ffffaa;">
<img src="saturn.jpg"/>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; bottom:0%; left:100%; background-color:#aaffff;">Tel père, tel fils1</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; top:0%; left:100%; background-color:#aaffff;">Tel père, tel fils 2</p>
<p class="fils" style="margin:0; padding:0; position:absolute; width:200px; margin-top:65px; top:100%; left:100%; background-color:#aaffff;">Tel père, tel fils 3</p>
</div>
Ça continue de marcher! J'y crois pas! Bon, là je suis sur la bonne route. Je vais maintenant transformer tout cela en quelque chose de plus décent, avec une feuille de styles séparée et tout:
http://test.jmgonet.com/homeCSS2_CINQ.htm
http://test.jmgonet.com/css2_cinq.css
Il me reste encore à placer les différents éléments ensemble (l'entête, le navigateur, etc...) J'ai déjà mal à la tête rien que de penser ce que ça va être de mettre ensemble plusieurs divs avec des positionnements absolus.
Modifié par jmgonet (22 Apr 2005 - 09:02)