I ont besoin de la mise en page suivante pour une webapp:Mise en page CSS pour en-tête, pied de page et le contenu avec la barre de défilement
+---------------------------------------------+
| header |
+-------------------------------------------+-+
| |#|
| content | |
| |#|
+-------------------------------------------+-+
| footer |
+---------------------------------------------+
tête/pied de page devrait toujours être en haut/bas de la page du navigateur. Ils n'ont pas une hauteur fixe.
Le contenu doit remplir l'espace disponible et, éventuellement, avoir une barre de défilement (indiquée par #). La barre de défilement ne doit pas couvrir toute la fenêtre.
J'ai besoin que cela fonctionne dans IE> = 7, Chrome et Firefox.
Jusqu'ici j'ai essayé différents divs et tables mais ils ont tous échoué parce que je ne peux pas obtenir le contenu pour remplir exactement l'espace disponible.
Mise à jour: La hauteur de tête et pied de page doit être déterminée par leur propre contenu (par exemple en-tête pourrait inclure un menu, pied de page une notification établie par javascript).
Echantillon ajouté:
Cela devrait montrer ce que je suis en train de faire. Le problème est (en dehors de ne pas travailler :)) est que la hauteur de la div 'externe' est plus grande que la fenêtre.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" style="height: 100%">
<head>
<script src="../lib/jquery-1.4.2.min.js" type="text/javascript"></script>
<style type="text/css">
.header { width: 100%; background-color: red; }
.footer { width: 100%; background-color: blue; }
.content { overflow: auto; height: 100%; }
</style>
<script type="text/javascript">
$(function()
{
$("#grow").click(function() { var a=$("<div>test</div>").hide(); $(".header").append(a); a.slideDown(); });
$("#toggle").click(function() { $("#text").toggle(); });
});
</script>
</head>
<body style="height: 100%">
<div id="outer" style="height: 100%">
<div class="header">
header <a id="grow" href="#">grow</a>
</div>
<div class="content">
<h3>
Lorem:</h3>
<p>
<a id="toggle" href="#">toggle</a>
</p>
<p id="text">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam faucibus, nisl nec egestas molestie, orci quam adipiscing
neque, ut luctus ante lorem non enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
Donec neque urna, euismod nec eleifend nec, imperdiet id nunc. Sed id orci sed magna varius rhoncus eget quis nulla. Aliquam
posuere erat ut leo suscipit adipiscing. Integer tortor sapien, ornare in cursus sit amet, facilisis eget enim. Duis leo
nulla, fringilla eget vestibulum vel, pretium ut purus. In dictum vulputate risus, eu fringilla urna malesuada eu. Cras
interdum sollicitudin volutpat. Sed eu iaculis dui. Praesent eleifend sem a urna viverra ullamcorper. Vivamus iaculis volutpat
mauris, sed ornare diam laoreet vitae. Aenean cursus dui vitae mauris tempus pulvinar. Morbi pharetra rutrum eros sed luctus.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam faucibus, nisl nec egestas molestie, orci quam adipiscing
neque, ut luctus ante lorem non enim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;
Donec neque urna, euismod nec eleifend nec, imperdiet id nunc. Sed id orci sed magna varius rhoncus eget quis nulla. Aliquam
posuere erat ut leo suscipit adipiscing. Integer tortor sapien, ornare in cursus sit amet, facilisis eget enim. Duis leo
nulla, fringilla eget vestibulum vel, pretium ut purus. In dictum vulputate risus, eu fringilla urna malesuada eu. Cras
interdum sollicitudin volutpat. Sed eu iaculis dui. Praesent eleifend sem a urna viverra ullamcorper. Vivamus iaculis volutpat
mauris, sed ornare diam laoreet vitae. Aenean cursus dui vitae mauris tempus pulvinar. Morbi pharetra rutrum eros sed luctus.
Vestibulum consequat vestibulum neque. Donec sagittis nisl sed sem dapibus accumsan. Praesent at ipsum enim. Nullam tellus
sem, lobortis aliquet aliquet nec, volutpat vitae felis. Fusce dui leo, elementum sit amet varius sed, dictum non enim.
</p>
</div>
<div class="footer">
footer
</div>
</div>
</body>
</html>
Donc, si le pied de page et en-tête ne sont pas des hauteurs fixes, quelle hauteur sont-ils? Et quoi d'autre remplit l'espace "contenu"? – Nellius
Mise à jour de la question. Le contenu est rempli par le contenu, par ex. texte, listes, flash, etc – laktak
Vous devez faire un choix, vous ne pouvez pas avoir un pied de page collant avec une hauteur non déterminée ... – Guillaume86