CSS圖片垂直居中詳解


CSS圖片垂直居中問題,困擾了我許久,今天終於可以總結下來了:


方法一:利用定位

HTML結構如:

<div class="box">
    <a class="pic-wrap" href="#" target="_blank">
        <img src="http://img01.taobaocdn.com/tps/i1/T1LeeNXodaXXXXXXXX-130-150.png">
    </a>
</div>

 CSS代碼如:

body {
    margin: 0;
    padding: 0;
    font: 12px/1.5 tahoma,arial;
}
.box {
    width: 220px;
    height: 220px;
    border: 1px solid #F30;
    margin: 100px auto 0;
    display: table;
}
.pic-wrap {
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}
/*主要針對IE6、7的hack*/
.box {
    *position: relative;
}
.pic-wrap {
    *width: 100%;
    *position: absolute;
    *top: 50%;
    *left: 0;
    /*繼承自body的字體會影響到ie6,設置默認的windows系統字體*/
    _font-family: sans-serif;
}
.pic-wrap img {
    *position: relative;
    *top: -50%;
    *left: 0;
    /*在ie中空文本節點有默認高度*/
    vertical-align: middle\9;
    /*在ie中,a標簽中的img標簽默認有藍色邊框*/
    border: none\9;
}


方法二:

HTML結構同上,

CSS代碼如:

.box {
    width: 220px;
    height: 220px;
    border: 1px solid #F30;
    margin: 100px auto 0;
}
.pic-wrap {
    display: table-cell;
    vertical-align: middle;
    width: 220px;
    height: 220px;
    text-align: center;
    /*ie6、7不支持display:table-cell*/
    *display: block;
    *font-size: 192px; /*字體大小為height*0.783或者height/1.14,這里約為192px*/
    _font-family: sans-serif; /*設置字體,否則在ie6下會有一個像素的偏差*/
}
.pic-wrap img {
    border: none;
    vertical-align: middle; /*由於ie下空文本節點有默認高度,所以設置*/       
}

注意,當在css中設置了body元素字體的話,那么方法二在ie7下會失效的


最佳方法:

CSS代碼如:

body {
    margin: 0;
    padding: 0;
    font: 12px/1.5 tahoma,arial;
}
.box {
    width: 220px;
    height: 220px;
    border: 1px solid #F30;
    margin: 100px auto 0;
}
.pic-wrap {
    display: table-cell;
    vertical-align: middle;
    width: 220px;
    height: 220px;
    text-align: center;
    /*ie6、7不支持display:table-cell*/
    *display: block;
    _font-size: 192px;
    +line-height: 220px; /*設置ie7中空文本節點行高為220px*/
    _font-family: sans-serif;
}
.pic-wrap img {
    border: none;
    vertical-align: middle\9;/*由於ie中有默認高度的空文本節點*/
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM