未知高度的图片垂直居中

作者:雨夜带刀 来源:雨夜带刀's Blog 时间:2010-12-17 12:36:00 

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

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

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

方法一 (XHTML 1.0 transitional):

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

HTML结构部分:

<div id="box">
    <span><img src="images/demo.jpg" alt=""></span>
</div>

CSS样式部分:

<style type="text/css">
#box{
width:500px;height:400px;
display:table;
text-align:center;
border:1px solid #d3d3d3;background:#fff;
}
#box span{
display:table-cell;
vertical-align:middle;
}
#box img{
border:1px solid #ccc;
}
</style>
<!--[if lte IE 7]>
<style type="text/css">
#box{
position:relative;
overflow:hidden;
}
#box span{
position:absolute;
left:50%;top:50%;
}
#box img{
position:relative;
left:-50%;top:-50%;
}
</style>
<![endif]-->

 

标签:图片,居中
0
投稿

猜你喜欢

  • 在Python的Django框架中为代码添加注释的方法

    2023-09-25 07:24:21
  • 三步实现Django Paginator分页的方法

    2022-09-22 20:15:31
  • python中resample函数实现重采样和降采样代码

    2022-10-24 05:49:23
  • MySQL的6种日志详解

    2008-12-18 14:36:00
  • Python Matplotlib数据可视化模块使用详解

    2022-06-03 01:24:11
  • Python写安全小工具之TCP全连接端口扫描器

    2023-12-30 13:34:52
  • 13个超级有用的 jQuery 内容滚动插件和教程

    2011-08-10 19:10:08
  • python unittest单元测试的步骤分析

    2022-03-21 05:59:10
  • JavaScript中定义函数的三种方法

    2024-05-09 10:37:04
  • 如何使用表格来储存数据库的记录?

    2010-05-16 15:14:00
  • Python中如何导入类示例详解

    2023-05-09 08:35:58
  • python实现哈希表

    2022-12-16 09:00:19
  • 在MySQL中使用LIMIT进行分页的方法

    2024-01-20 22:27:58
  • Python绘制圣诞树+落叶+雪花+背景音乐+浪漫弹窗 五合一版圣诞树

    2022-11-20 01:32:46
  • [译]艺术和设计的差异 (1)

    2009-09-25 12:38:00
  • python程序快速缩进多行代码方法总结

    2022-12-06 03:30:38
  • 使用pyqt5 实现ComboBox的鼠标点击触发事件

    2022-01-12 17:24:57
  • 首页访问感受提升三步曲

    2007-12-13 20:36:00
  • Atlassian系列产品及插件激活方法[JIRA8.19.0+]

    2023-01-29 19:30:16
  • 树莓派4B+opencv4+python 打开摄像头的实现方法

    2021-05-04 12:09:37
  • asp之家 网络编程 m.aspxhome.com