0

我正在尝试创建一个具有固定高度的页眉和页脚(= 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;
}
4

1 回答 1

0

在这里查看工作演示:演示

#contentWrapper{
    width: 100%;
    position: static; 
    display: table; 
    overflow: hidden; 
    min-height: 100%;
    height: 100%;
    background: red;
}

这在 Firefox 中运行良好。这是你想要的?

于 2013-08-06T10:10:27.860 回答