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




