使图片水平并垂直居中的一个Hack
2011-10-13 00:00
309 查看
淘宝的一个前端面试题:使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。
想起了vertical-align:middle;但是不行,后来才知道还要display:table-cell;才可以,但是display:table-cell;这个在IE是没有用的,于是就想用line-height来解决,无果。
答案如下:
测试效果:
.boxs {display: table-cell;vertical-align:middle;width:200px;height:200px;text-align:center;/* hack for ie */*display: block;*font-size: 175px;/* end */border: 5px solid red;}
.boxs img {vertical-align:middle;}
CSS Code
淘宝招聘官评语:这个解法用到了css hack。我们也不理解为什么设置font-size可以让IE显示垂直居中的效果。根据我们的计算,高度/字体大小的比值为1.14左右时IE可实现垂直居中。
当然还有很多其他的实现方案,但需要引入额外的标签。对于流量超大的淘宝网而言,我们经过权衡,倾向于在此问题上合理的使用hack。
想起了vertical-align:middle;但是不行,后来才知道还要display:table-cell;才可以,但是display:table-cell;这个在IE是没有用的,于是就想用line-height来解决,无果。
答案如下:
<!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Keywords" content="简单的XHTML页面" /> <meta name="Description" content="这是一个简单的XHTML页面" /> <title>简单的XHTML页面</title> <style type="text/css"> .box {display: table-cell; vertical-align:middle; width:200px; height:200px; text-align:center;/* hack for ie */ *display: block; *font-size: 175px;/* end */border: 5px solid red;} .box img {vertical-align:middle;} </style> < /head> <body> <div class="box"> <img src="http://justinyoung.cnblogs.com/images/cnblogs_com/justinyoung/2007/tb_m.PNG" alt="" /> </div> </body> </html>
测试效果:
.boxs {display: table-cell;vertical-align:middle;width:200px;height:200px;text-align:center;/* hack for ie */*display: block;*font-size: 175px;/* end */border: 5px solid red;}
.boxs img {vertical-align:middle;}
CSS Code
.boxs {display:table-cell; vertical-align:middle; width:200px; height:200px; text-align:center; /* hack for ie */*display: block; *font-size: 175px;/* end */border: 5px solid red; } .boxs img { vertical-align:middle; }
淘宝招聘官评语:这个解法用到了css hack。我们也不理解为什么设置font-size可以让IE显示垂直居中的效果。根据我们的计算,高度/字体大小的比值为1.14左右时IE可实现垂直居中。
当然还有很多其他的实现方案,但需要引入额外的标签。对于流量超大的淘宝网而言,我们经过权衡,倾向于在此问题上合理的使用hack。
相关文章推荐
- 使图片水平并垂直居中的一个Hack
- css布局小技巧之:让一个小图片水平靠右对齐,垂直居中
- 转载未知大小的图片在一个已知大小容器中的水平和垂直居中(二)
- 一个简洁的图片垂直居中,不需要hack,不需要table-cell
- 如何让一个不固定高宽的图片,垂直和水平居中在页面中间?
- 任意大小的图片垂直水平居中与一个固定大小的容器中
- 转载未知大小的图片在一个已知大小容器中的水平和垂直居中(二)
- 未知图片宽高水平垂直居中
- 用css让一个容器水平垂直居中
- 如何将一个div水平垂直居中?6种方法做推荐
- 经常用的图片在容器中的水平垂直居中实例
- CSS如何让图片垂直并水平居中等比缩放?
- CSS制作图片水平垂直居中
- 网页常见布局,让图片在div中,垂直居中,水平居中
- 大小不固定的图片、多行文字的水平垂直居中
- css display:table-cell 文字、图片的垂直水平居中
- css 使图片水平垂直居中
- 未知大小的图片在div中水平垂直居中(拒绝使用table-cell)
- 大小不固定的图片和多行文字的垂直水平居中
- CSS实现文字和图片的水平垂直居中