div+css垂直居中的五種實現(xiàn)方法

字號:


    方法一:把一些 div 的顯示方式設(shè)置為表格,因此我們可以使用表格的 vertical-align屬性。
    結(jié)構(gòu)效果如下:
    css
    代碼如下:
    div#wrapper {
    display: table;
    width: 500px;
    height: 500px;
    background-color: #c00;
    }
    div#row {
    display: table-row;
    }
    div#cell {
    display: table-cell;
    vertical-align: middle;
    }
    html
    代碼如下:
    <div id=wrapper>
    <div id=row>
    <div id=cell>
    if you want to sell sugar water for the rest of my life or want a chance to change the world
    </div>
    </div>
    </div>
    優(yōu)點:不用受內(nèi)容高度的限制,簡單實現(xiàn)垂直居中;
    缺點:不兼容ie6,7
    方法二:這個方法使用絕對定位的 div,把它的 top 設(shè)置為 50%,margin-top 設(shè)置為負的 content 高度。這意味著對象必須在 css 中指定固定的高度。
    結(jié)構(gòu)效果如下:
    css
    代碼如下:
    div#wrapper {
    position: relative;
    width: 500px;
    height: 500px;
    background-color: #c00;
    }
    div#content {
    position: absolute;
    top: 50%;
    left: 0;
    width: 400px;
    height: 300px;
    margin-top: -150px;
    background-color: pink;
    }
    html
    代碼如下:
    <div id=wrapper>
    <div id=content>
    </div>
    </div>
    優(yōu)點:兼容性好
    缺點:必須知道內(nèi)容盒子的高度才可以,有了這點限制;
    方法三:這個方法和方法二的原理是一樣的。廢話不多說看代碼
    css
    代碼如下:
    .wrap {
    height: 500px;
    width: 500px;
    background-color: pink;
    }
    .additional {
    height: 50%;
    margin-bottom: -120px;
    }
    #content {
    height:240px;
    width:70%;
    background-color: #000;
    }
    html
    代碼如下:
    <div class=wrap>
    <div class=additional></div>
    <div id=content>
    </div>
    </div>
    優(yōu)缺點和法二一樣,缺點嘛多了個額外的標簽;
    方法四:這個方法使用了一個 position:absolute,有固定寬度和高度的 div。這個 div 被設(shè)置為 top:0; bottom:0;。但是因為它有固定高度,其實并不能和上下都間距為 0,因此 margin:auto; 會使它居中。使用 margin:auto;使塊級元素垂直居中是很簡單的。
    結(jié)構(gòu)效果如下:
    css
    代碼如下:
    #content {
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
    height:240px;
    width:70%;
    background-color: #000;
    }
    html
    代碼如下:
    <div id=content>
    content here</div>
    優(yōu)點:非常簡單
    缺點:不兼容ie6,7
    方法五:這個方法只能將單行文本置中。只需要簡單地把 line-height 設(shè)置為那個對象的 height 值就可以使文本居中了。這個就不用實例了,您你看就明白