我正在尝试创建一个自动适应高度的应用页面.以下是页面中使用的HTML代码
<div id="main" role="main">
<header class="header">
<div class="allPageHeaderImg"></div>
<div class="logo"><img src="images/logo-viva.png" alt="VIVAGREL Logo" /></div>
</header>
<section class="allContent">
<div class="button-links-subpg">
<ul class="buttons">
<li><a href="#"><img src="images/graceButton.png" alt="cardiac-button" /></a></li>
<li><a href="#"><img src="images/timiButton.png" alt="cardiac-button" /></a></li>
</ul>
</div>
</section>
<footer id="footer">
<div id="footerBg">
<div class="footer-links">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="index.html">Back</a></li>
</ul>
</div>
</div>
</footer>
</div>
Run Code Online (Sandbox Code Playgroud)
使用的CSS
html {
height:100%!important;
width:100%;
padding:0;
margin:0;
}
body {
margin:0;
padding:0;
width:100%;
height:100%!important;
}
#main {
height:100%;
margin:100%;
margin:0 auto;
padding:0;
background:#fff;
}
.header {
height:145px;
width:100%;
background:url(../images/header-repbg-320.png) left top repeat-x;
display:block;
display:inline-block;
}
.allContent {
width:100%;
border:0 solid green;
height:100%;
min-height:100%;
vertical-align:middle;
display:block;
display:inline-block;
}
#footer {
background:url(../images/footer-repbg-320.png) bottom left repeat-x;
height:90px;
width:100%;
display:block;
display:inline-block;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,整个页面只消耗了页面高度的一半,在页脚下方留下了一个尴尬的空间,
问题:如何使内容自动适应页面的高度?
你几乎已经拥有了。我简单修改了前三个选择器的CSS如下:
html {
height: 100%;
}
body {
margin: 0;
padding: 0;
height: 100%;
}
#main {
margin: auto;
min-height: 100%;
background: #ccc;
width: 960px;
border-left: 1px solid #aaa;
border-right: 1px solid #aaa;
}
Run Code Online (Sandbox Code Playgroud)
我只向 #main 选择器添加了背景、宽度和边框以显示它的工作原理。没有这些属性它也可以工作,但是边距和最小高度是必要的。您还会注意到 !important 值是不必要的,并且作为最佳实践,应该主要用于解决与继承的冲突。
我希望这有帮助。