图片在div中的居中问题

先给一张淘宝上的宝贝展示图:


我们看到图片在div中是居中的,那么这是怎么做到的呢。其实这在FF和IE下要有不同的实现方法,下面我们分析一下这个的做法:

HTML:

<div class="photo">
  <a href="eg.html">
   <img  src="eg.jpg">
  </a>
</div>

CSS:

.photo {
    height: 220px;
    padding: 5px;
    width: 220px;
}
 
.photo a {
    display: table-cell;
    font: 12px/1 Tahoma,Helvetica,Arial;
    height: 220px;
    text-align: center;
    vertical-align: middle;
    width: 220px;
    *display:block;
    *font-family:Arial;
    *font-size:191px;
 }

class名为photo的这个div的大小是固定的,而图片却有大有小,不能保证图片能全部充满div,所以为了能让用户点击了图片以外但在div之内的范围(padding部分除外)也能跳转到指定的链接上,我们给<a>加了一个和包含它的div相同的宽和高。但<a>属于行内元素,所以给它设置了一个display: table-cell属性,这样设置vertical-align: middle和text-align: center就能使图片居中了。

但在可怜的IE下却没有display: table-cell这个属性,所以在IE下我们只能设置display: block属性了,垂直居中的问题就只能靠font-size和line-height属性来解决了,所以就有了代码中的hack.

我查了下淘宝上的做法,也是按这种方式来做的。

IE6我诅咒你,快快消失吧,哈哈。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值