外部一个div固定宽高,内部img也固定宽高,怎么让img在外部div中垂直居中对齐

html代码如下:

<div class="box"><imgsrc="images/img_01.png" class="img"></div>

 

css样式如下:

 

(1)第一种方法是使用绝对定位,但是这种方法必须要固定图片的宽度和高度,否则不能实现垂直居中。   

 div{ position:relative;width:300px; height:400px; border:solid 1px #ccc;}

img{position:absolute; wdith:100px;height:100px; margin:-50px 0px 0px -50px; top:50%; left:50%;}

(2)      使用display:table-cell,但是ie6和ie7不支持此属性。在box中加上line-height:400px;ie7下实现了垂直居中。

.box{ width:300px; height:400px;border:solid 1px #ccc; text-align:center; vertical-align:middle;display:table-cell; line-height:400px;}

注:但是这种方法ie6不支持。

3)在第2种方法上进行了改进,但是效果还是不太让人满意。

.box{width:300px; height:400px; border:solid 1px #ccc; display:table;text-aligh:center; *position:relative; overflow:hidden;}

.subbox{ display:table-cell;vertical-align:middle;*position:absolute;*top:50%;}

.img{ *position:relative; *top:-50%;}

注:这种方法其实在ie6ie7下图片也不是水平居中,总向右偏那么一点。暂时还没想到很好的解决方案。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值