如何让未知高宽的图片在div里实现垂直居中?

嘿,不知道大家有木有遇到这样的要求,在一个固定尺寸的容器里面放一个未知大小的图片,然后要求垂直居中,并兼容ie6。小提莫就曾经遇到过,通过一番摸索(就是百度(๑•ᴗ•๑)),实现方法如下:

html:

1 <div class="teemo">
2   <img src="images/teemo.jpg" />
3 </div>

常规CSS(支持display:table-cell):

1 *{margin: 0;padding: 0;}
2 .teemo{border: 1px solid #666; width: 160px; height: 154px; display: table-cell; vertical-align:middle; text-align: center;}
3 .teemo img{vertical-align:middle; display:inline;}

由于IE6\IE7不支持display:table-cell, 只好想其他办法来让图片实现垂直居中对齐,淘宝工程师贡献了一种方法(当元素的高度/字体大小=1.14左右的时候图片能够垂直居中。注:经过测试发现也与font-family有关。),这里需要对div设置 *display:block ,所以完整的CSS如下:

1 *{margin: 0;padding: 0;}
2 .teemo{border: 1px solid #666; width: 160px; height: 154px; display: table-cell; vertical-align:middle; text-align: center; *display: block;*font-family: Arail;*font-size:135px;}
3 .teemo img{vertical-align:middle; display:inline;}

 

posted @ 2017-12-22 17:06  前端小提莫  阅读(184)  评论(0)    收藏  举报