Je dois adapter la hauteur de ma page Web à la taille de l'écran sans faire défiler l'écran.
HTML
<body>
<form id="form1" runat="server">
<div id="main">
<div id="content">
</div>
<div id="footer">
</div>
</div>
</form>
</body>
CSS
#content{ background-color:#F3F3F3; margin:auto;width:70%;height:700px;}
#footer{width:100%;background-color:#666666;height:200px;}
Une solution autonome rapide, non élégante mais fonctionnelle, avec CSS en ligne et aucune exigence jQuery. Autant que je sache, cela fonctionne aussi avec IE9.
<body style="overflow:hidden; margin:0">
<form id="form1" runat="server">
<div id="main" style="background-color:red">
<div id="content">
</div>
<div id="footer">
</div>
</div>
</form>
<script language="javascript">
function autoResizeDiv()
{
document.getElementById('main').style.height = window.innerHeight +'px';
}
window.onresize = autoResizeDiv;
autoResizeDiv();
</script>
</body>
Un positionnement fixe fera ce dont vous avez besoin:
#main
{
position:fixed;
top:0px;
bottom:0px;
left:0px;
right:0px;
}
Comme un autre gars l'a décrit ici , tout ce que vous avez à faire est d'ajouter
height: 100vh;
au style de tout ce dont vous avez besoin pour remplir l'écran
Ne donnez pas des hauteurs exactes, mais des hauteurs relatives, totalisant 100%. Par exemple:
#content {height: 80%;}
#footer {height: 20%;}
Ajouter à
html, body {height: 100%;}
Essayer:
#content{ background-color:#F3F3F3; margin:auto;width:70%;height:77%;}
#footer{width:100%;background-color:#666666;height:22%;}
(77% et 22% préservent grossièrement les proportions de content
et footer
et ne doivent pas causer de défilement)
vous pouvez utiliser css pour définir la balise body sur ces paramètres:
body
{
padding:0px;
margin:0px;
width:100%;
height:100%;
}