css任意图片文字上下左右都居中对齐

图片的宽度和高度是未知的,没有一个固定的尺寸,在这个前提下要使图片在一个固定了宽度和高度的容器中垂直居中,想想感觉还是挺麻烦的,由于最近的项目可能会用到这个方案,所以把一些常用的方法都收集整理了一下。

下图是理想中的效果图,外部容器的宽度和高度是固定的,中间的图片宽度和高度未知,但是图片要始终要相对于外部的容器垂直居中。

但是实际中实现的效果并不是很完美,由于各浏览器的解析都各不相同,所以各浏览器都会有1px-3px的偏差。

(XHTML 1.0 transitional)方法

该方法是将外部容器的显示模式设置成display:table,img标签外部再嵌套一个span标签,并设置span的显示模式为display:table-cell,这样就可以很方便的使用vertical-align象表格元素那样对齐了,当然这只是在标准浏览器下,IE6/IE7还得使用定位。

<!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> 
<title> 多行文字图片实现垂直居中 </title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<style type="text/css"> 
body { font-size:12px;font-family:tahoma;} 
div#wrap { 
display:table; 
border:1px solid #FF0099; 
background-color:#FFCCFF; 
width:760px; 
height:600px; 
_position:relative; 
overflow:hidden; 
div#subwrap { 
vertical-align:middle; 
display:table-cell; 
_position:absolute; 
_top:50%; 
div#content { 
_position:relative; 
_top:-50%; text-align: center;
</style> 
</head> 
<body> 
<div id="wrap"> 
<div id="subwrap"> 
<div id="content"><pre>
<img src="http://i10.topit.me/l161/1016156445697d1441.jpg" alt="" height="300"/><br />
现在我们要使这段文字垂直左右居中显示! 
div#subwrap { position:absolute; border:1px solid #000; top:50%; } 
div#content { border:1px solid #000; position:relative; top:-50%; } 
</pre></div> 
</div> 
</div> 
</body> 
</html> 

http://lhdeyx.blog.163.com/blog/static/31819697201301513553678/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值