J'ai une question que je n'ai pas trouvée dans les différents modèles de disposition CSS que j'ai consultés. J'ai donc pensé à la publier ici.Contenu du fluide div avec barre latérale en option
Je travaille sur un site qui utilise une disposition de base à deux colonnes fluide/fixe. Le contenu du site est dans la div gauche, et la barre latérale dans la droite. La barre latérale a une largeur fixe de 200 pixels environ, et le contenu se développe pour remplir la largeur restante du parent.
Voici ce que le code ressemble à:
<div style="width: 90%; margin: 10px auto 10px auto;"> <!-- site container -->
<div style="margin-right: 200px;">Content goes here.</div>
<div style="float: right; width: 200px;">Menus goes here.</div>
<div style="clear: both;"></div> <!-- float-clearer div -->
</div>
Cette approche est assez standard et fonctionne très bien pour la plupart, mais la question est que la conception du site nécessite la barre latérale apparaître que dans certains cas. Tout le HTML est généré par PHP, et la fonction "get-content()" ne sait pas si le "get-sidebar()" sera appelé ou non. Lorsque la barre latérale est appelée, je souhaite que le contenu se déplie pour remplir la div parente tout en laissant suffisamment de place pour la barre latérale. S'il n'y a pas de barre latérale, le contenu doit se développer pour remplir toute la largeur du parent.
Y at-il un moyen de le faire avec CSS - peut-être en utilisant "auto" pour les marges de contenu - sans compter sur PHP/JavaScript?
javascript/jquery peut facilement vous aider .. si cela ne vous dérange pas de l'utiliser. – Aziz
Pour info, le code original que vous avez posté place le menu ci-dessous, mais à la droite de la zone de contenu. Pour cette raison, cela n'aurait pas d'importance si le menu div était là ou non. – jakeisonline
Vous pouvez supprimer la div "clear" non sémantique et placer la page dans une table non sémantique. Les tables gèrent parfaitement ce genre de situation. :) –