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”).
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 livre | Page n°123 |
plein de texte après dans un paragraphe
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
Titre du livre
plein de texte après dans un paragraphe
Mes remarques sur ce cas :
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 :
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.