在曾經(jīng)的 淘寶UED 招聘 中有這樣一道題目:
“使用純CSS實現(xiàn)未知尺寸的圖片(但高寬都小于200px)在200px的正方形容器中水平和垂直居中!
當(dāng)然出題并不是隨意,而是有其現(xiàn)實的原因,垂直居中是 淘寶 工作中最常遇到的一個問題,很有代表性。
題目的難點在于兩點:
- 垂直居中;
- 圖片是個置換元素,有些特殊的特性。
至于如何解決,下面是一個權(quán)衡的相對結(jié)構(gòu)干凈,CSS簡單的解決方法:
.box { /*非IE的主流瀏覽器識別的垂直居中的方法*/ display: table-cell; vertical-align:middle;
/*設(shè)置水平居中*/ text-align:center;
/* 針對IE的Hack */ *display: block; *font-size: 175px;/*約為高度的0.873,200*0.873 約為175*/ *font-family:Arial;/*防止非utf-8引起的hack失效問題,如gbk編碼*/
width:200px; height:200px; border: 1px solid #eee; } .box img { /*設(shè)置圖片垂直居中*/ vertical-align:middle; }
<div class="box"> <img src="http://pics.taobao.com/bao/album/promotion/ taoscars_180x95_071112_sr.jpg" /> </div>
當(dāng)然還有其他的解決方法,在此不深究,有興趣的可以閱讀下:
《Vertical centering using CSS》 《Vertical centering using CSS》(標(biāo)題和上同,內(nèi)容不同) 《CSS List Grid Layout》
本文鏈接:http://www.95time.cn/tech/web/2008/5827.asp
出處:藍色理想
責(zé)任編輯:bluehearts
◎進入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|