donc i ont la structure suivanteCSS Hauteur: Remplissez l'espace disponible. Pas de hauteurs fixes
<div id="container">
<div id="head"></div>
<div id="body"></div>
<div id="foot"></div>
</div>
Je n'utilise les ids à des fins d'illustration si ce n'est pas même nécessairement une pleine page.
Je souhaite que mon conteneur spécifie une taille fixe ... ou une taille relative, peu importe. Supposons pour le bien de l'argument dire 300px hauteur. Aussi overflow: hidden
Je veux la tête/pied pour étendre à adapter le contenu en lui-même, donc height: auto
est suffisante.
Je veux que le corps se dilate pour s'adapter à l'espace restant entre la tête et les pieds. Si le contenu est trop grand, faites défiler (overflow: auto
).
height: 100%
sur #body
ne fonctionne pas, car alors il gagne la hauteur de 300px comme le parent et pousse une partie de lui-même et le pied de page de parent. Avoir la tête et le pied position: absolute
ne fonctionne pas car en les sortant du flux de documents, un contenu de #body
est masqué. Pour résoudre ce problème, nous pouvons utiliser padding-top/bottom mais nous ne pouvons pas définir un padding-top: xxpx
/padding-bottom: xxpx
sur le #body
car nous ne connaissons pas la hauteur nécessaire de la tête/du pied, donc pourquoi ils sont height: auto
.
Edit:
I essayé convertir le conteneur/tête/corps/pied dans une table où le #body
est height: 100%
. Cela fonctionne très bien, sauf que #body
ne défilera pas si le contenu devient trop volumineux, au lieu que la table entière se développe pour afficher tout le contenu. Ce n'est pas le comportement souhaité car j'ai besoin de #body
pour faire défiler, pas #content
ou son parent.
Des suggestions?
Vous voulez régler l'arrière-plan du corps pour qu'il s'ajuste entre la tête et le pied de page? – galambalazs
Vous pouvez probablement "simuler" l'apparence de ce que vous essayez d'accomplir en pensant à #container en tant que # corps. Vous pouvez également ajouter un élément parent supplémentaire si #container ne peut pas être utilisé avec. Ça dépend de ce que vous cherchez, exactement. – reisio
@reisio: impossible. Le problème est que je veux le pied en bas, et la tête en haut, et le corps pour remplir l'espace. Cela ne me dérange pas d'utiliser #container comme arrière-plan de #body, mais le problème est de faire la position tête/pied et le défilement du corps. C'est plus sur le contenu que sur la couleur de fond. –