CSS,垂直对齐在Mozilla Firefox中无法正常工作

时间:2013-08-06 10:01:48

标签: html css firefox cross-browser vertical-alignment

我正在尝试创建一个具有固定高度Header和页脚(= Nav)的页面,其中它们之间是一个contentWrapper div,它完全伸展以填充屏幕的最大高度。在contentWrapper中,有一个内容div,包括一个表单。我需要这个内容div根据其父div contentWrapper 进行垂直和水平对齐。我找到了一个解决方案,它运行得很好,但只在Chrome和IE中,不在Firefox(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;
}

1 个答案:

答案 0 :(得分:0)

在这里查看工作演示:Demo

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

这在Firefox中运行良好。这是你在找什么?