Table des Matières

Cas 1 : centrage gauche et droite sur une même ligne

Etant en pleine conversion d’un site en css, je suis tombé sur cet os. Ca a pourtant pas l’air si compliqué que cela. Explication : je voudrais mettre dans le flux courant du texte une ligne de largeur 100% qui me permet de mettre du texte à gauche, aligné à gauche et sur la même ligne du texte à droite aligné droite. Exemple : footer ou header d’une page d’un livre (à gauche : “titre du livre” et à droite : “Page n°123”).

Solution 1 : avec des tableaux

Je sais, je sais, ca va raller, mais ca fait rien.

<p>plein de texte avant dans un paragraphe</p>
<table style='width:100%'>
<tr>
  <td style='text-align:left'>Titre du livre</td>
  <td style='text-align:right'>Page n°123</td>
</tr></table>
<p>plein de texte après dans un  paragraphe</p>

Rendu ci-dessous dans une boite de 500 pixels de large avec du texte avant et après au bout :

plein de texte avant dans un paragraphe

Titre du livrePage n°123

plein de texte après dans un paragraphe

Solution 2 : flux courant plus un div float:right

Et oui, dans un paragraphe standard aligné gauche, rien n’empeche de mettre juste le numéro de page à droite avec un div float. Reste juste à s’assurer qu’il soit sur la même ligne que celle qu’on désire au départ.

  <p>plein de texte avant dans un paragraphe</p>
  <div style='float:right;'>Page n°123</div>
  <p>Titre du livre</p>
  <p>plein de texte après dans un  paragraphe</p>

Rendu de test :

plein de texte avant dans un paragraphe

Page n°123

Titre du livre

plein de texte après dans un paragraphe

Mes remarques sur ce cas :

Solution 3 : ul, li horizontaux

J’ai comme l’impression que dans beaucoup de cas où l’utilisation des tableaux permettait d’arriver très rapidement à un résultat, la ‘CSS way of doing that’ c’est avec des ul, li.

  <p>plein de texte avant dans un paragraphe</p>
  <ul style='list-style-type: none; width:100%'>
    <li style='float:left;'>Titre du livre</li>
    <li style='float:right;text-align:right'>Page n°123</li>
  </ul>
  <p>plein de texte après dans un  paragraphe</p>

Rendu de test :

plein de texte avant dans un paragraphe

plein de texte après dans un paragraphe

Remarques :

  1. Le rendu n’est pas bon car il y a interference entre la feuille de style du wiki et ce que je met dans le code. A regarder plus tard.
  2. Les menus par ul, il marchent vraiment très bien, mais dans ce cas particulier, il n’y a pas moyen de s’en sortir sans l’ajout de nombreuses propriétés. Ca me semble pas la bonne solution.

Conclusion

Temporaire … Avant l’avis de spécialistes.

La solution est évidement d’utiliser des floats. Cette nouvelle propriété est vraiment versatile, car elle permet de bien séparer les données de la mise en forme.