CSS圖片垂直居中實現(xiàn)方法詳解
發(fā)布時間:2012-01-21 13:32:14 作者:佚名
我要評論

CSS圖片垂直居中問題,困擾了我許久,今天終于可以總結(jié)下來了
方法一:利用定位
HTML結(jié)構(gòu)如:
<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,設(shè)置默認的windows系統(tǒng)字體*/
_font-family: sans-serif;
}
.pic-wrap img {
*position: relative;
*top: -50%;
*left: 0;
/*在ie中空文本節(jié)點有默認高度*/
vertical-align: middle\9;
/*在ie中,a標(biāo)簽中的img標(biāo)簽?zāi)J有藍色邊框*/
border: none\9;
}
方法二:
HTML結(jié)構(gòu)同上;
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; /*設(shè)置字體,否則在ie6下會有一個像素的偏差*/
}
.pic-wrap img {
border: none;
vertical-align: middle; /*由于ie下空文本節(jié)點有默認高度,所以設(shè)置*/
}
【注意,當(dāng)在css中設(shè)置了body元素字體的話,那么方法二在ie7下會失效的】
最佳方法:
CSS代碼如:
body {
margin: 0;
padding: 0;
<SPAN style="COLOR: #ff6600">font: 12px/1.5 tahoma,arial;</SPAN>
}
.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;
<SPAN style="COLOR: #ff6600">+line-height: 220px; /*設(shè)置ie7中空文本節(jié)點行高為220px*/</SPAN>
_font-family: sans-serif;
}
.pic-wrap img {
border: none;
vertical-align: middle\9; /*由于ie中有默認高度的空文本節(jié)點*/
}
HTML結(jié)構(gòu)如:
復(fù)制代碼
代碼如下:<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代碼如:
復(fù)制代碼
代碼如下: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,設(shè)置默認的windows系統(tǒng)字體*/
_font-family: sans-serif;
}
.pic-wrap img {
*position: relative;
*top: -50%;
*left: 0;
/*在ie中空文本節(jié)點有默認高度*/
vertical-align: middle\9;
/*在ie中,a標(biāo)簽中的img標(biāo)簽?zāi)J有藍色邊框*/
border: none\9;
}
方法二:
HTML結(jié)構(gòu)同上;
CSS代碼如:
復(fù)制代碼
代碼如下:.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; /*設(shè)置字體,否則在ie6下會有一個像素的偏差*/
}
.pic-wrap img {
border: none;
vertical-align: middle; /*由于ie下空文本節(jié)點有默認高度,所以設(shè)置*/
}
【注意,當(dāng)在css中設(shè)置了body元素字體的話,那么方法二在ie7下會失效的】
最佳方法:
CSS代碼如:
復(fù)制代碼
代碼如下:body {
margin: 0;
padding: 0;
<SPAN style="COLOR: #ff6600">font: 12px/1.5 tahoma,arial;</SPAN>
}
.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;
<SPAN style="COLOR: #ff6600">+line-height: 220px; /*設(shè)置ie7中空文本節(jié)點行高為220px*/</SPAN>
_font-family: sans-serif;
}
.pic-wrap img {
border: none;
vertical-align: middle\9; /*由于ie中有默認高度的空文本節(jié)點*/
}
相關(guān)文章
css圖片垂直居中 css中如何實現(xiàn)圖片垂直居中
使用純CSS實現(xiàn)未知尺寸的圖片(但高寬都小于200px)在200px的正方形容器中水平和垂直居中,下面是一個權(quán)衡的相對結(jié)構(gòu)干凈,CSS簡單的解決方法2013-04-17- 瀏覽網(wǎng)頁時經(jīng)常會碰到圖文并茂的文章,如果圖片的尺寸過大,常會把頁面結(jié)構(gòu)撐得變形直接影響了界面美觀度,一直用DIV+CSS的方式來制作頁面,發(fā)現(xiàn)用CSS來得更方便,相信處理2013-03-28
一個新的CSS圖片替換的技巧(背景顯示與文本移離屏)告別9999px
-9999 px的形象替代技術(shù)已經(jīng)流行了一個十年最好的部分。一項新技術(shù)已被發(fā)現(xiàn),可以提高性能,因為瀏覽器的不再畫一個9999 px箱在幕后2012-12-30- 無需flash,完全用css就可以做出超炫的圖片倒影效果,大伙不要不信;網(wǎng)上流傳很多種版本,經(jīng)過本人的一番研究,做成能夠兼容firefox、chrome、IE等各主流瀏覽器的版本,跟大2012-12-27
純CSS圖片預(yù)加載實例 擺脫Javascript預(yù)載的束縛
有很多種方法來實現(xiàn)圖片的預(yù)加載,通常大部分使用Javascript讓事情滾動。不要再受Javascript預(yù)載的束縛了吧,用CSS你就可以毫不麻煩的預(yù)載你的圖片,需要的朋友可以了解下2012-12-19css實現(xiàn)圖片圓角 兼容所有瀏覽器實現(xiàn)代碼
今天處理了一個頁面刷新隨機顯示圖片的功能,發(fā)現(xiàn)直角太丑,想實現(xiàn)圖片圓角,兼容所有瀏覽器,于是網(wǎng)上搜集整理了一下,拿出來和大家分享2012-12-06- 看到問此問題的很多,所以花點時間整理下,歡迎大家提意見,做補充修改,謝謝2012-01-21
- CSS圖片提取工具,是我為了方便制作網(wǎng)站而編寫的一個小巧的工具。它功能單一,但可以省去不少的麻煩2011-10-09
華華CSS圖片下載器 v1.1 網(wǎng)站必備的小工具
如今DIV+CSS的網(wǎng)站設(shè)計成為主流,越來越的圖片不直接插在HTML中而選擇用CSS來展示了,這為仿站帶來很大的困難。2011-09-20- 動畫效果的CSS圖片導(dǎo)航菜單特效,鼠標(biāo)放到圖片上,會出現(xiàn)菜單提示,因為是用CSS實現(xiàn)的動畫效果,所以流暢度當(dāng)然沒有JavaScript和Flash的效果好,僅供參考。2010-11-18