我正在尝试创建一个具有固定高度的页眉和页脚(= Nav)的页面,它们之间有一个 contentWrapper div,它完全伸展以填充屏幕的最大高度。在 contentWrapper 中,有一个内容 div,其中包含一个表单。我需要这个内容 div根据其父 div contentWrapper 垂直和水平对齐。我找到了一个解决方案,效果很好,但只在 Chrome 和 IE 中,而不是在 Firefox (version 22.0)中。
我创建了这个小提琴,您可以在其中观察这种行为,尝试不同的浏览器。 http://jsfiddle.net/qWYqb/
任何想法如何为 Mozilla Firefox 解决这个问题?
HTML:
<div id="pageWrapper">
<header>
<div id="logo">
Logo
</div>
</header>
<div id="contentWrapper">
<div class="valignMiddle">
<div id="content">
<form>
<table>
<tbody>
<tr>
<td><label for="fullName">Full Name</label></td>
<td><input id="fullName" type="text" name="fullName" required="required" /></td>
</tr>
<tr>
<td><label for="email">E-mail</label></td>
<td><input id="email" type="email" name="email" required="required" /></td>
</tr>
</tbody>
</table>
<div>
<input type="submit" id="submit-go" value="Start Now"/>
</div>
</form>
</div>
</div>
</div>
<nav>
<ul>
<li><a href="#" class="btn1">Option1</a></li>
<li><a href="#" class="btn2">Option2</a></li>
</ul>
</nav>
</div>
CSS
* {
margin: 0;
padding: 0;
outline:none;
}
html, body{
min-height: 100%;
margin: 0;
padding: 0;
}
table
{
border-collapse: collapse;
border-spacing: 0;
}
td, th {
vertical-align:top;
}
body{
background-color: #E3E3E3;
}
/* This padding is there to stop margin collapsing */
div {
padding: 1px 0;
}
#pageWrapper{
position:absolute; top:0; bottom:0; left:0; right:0;
padding: 126px 0 100px 0;
margin: 0 auto;
width: 400px;
overflow: hidden
}
/* --- HEADER --- */
header{
width: 100%;
height: 126px;
margin-top:-126px;
background: yellow;
}
/* --- MAIN CONTENT --- */
#contentWrapper{
width: 100%;
position: static;
display: table;
overflow: hidden;
min-height: 100%;
background: red;
}
.valignMiddle {
position: static;
display: table-cell;
vertical-align: middle;
width: 100%;
}
#content{
width: 293px;
margin: 0 auto;
background: green;
}
/* --- NAVIGATION --- */
nav {
width: 100%;
height: 100px;
margin-bottom:-100px;
background: pink;
}
nav li {
display: inline-block;
list-style: none outside none;
}
nav ul {
text-align: center;
}