新闻中心
未知高度的图片垂直居中
图片的宽度和高度是未知的,没有一个固定的尺寸,在这个前提下要使图片在一个固定了宽度和高度的容器中垂直居中,想想感觉还是挺麻烦的,由于最近的项目可能会用到这个方案,所以把一些常用的方法都收集整理了一下。
下图是理想中的效果图,外部容器的宽度和高度是固定的,中间的图片宽度和高度未知,但是图片要始终要相对于外部的容器垂直居中。
但是实际中实现的效果并不是很完美,由于各浏览器的解析都各不相同,所以各浏览器都会有1px-3px的偏差。
方法一 (XHTML 1.0 transitional):
该方法是将外部容器的显示模式设置成display:table,img标签外部再嵌套一个span标签,并设置span的显示模式为display:table-cell,这样就可以很方便的使用vertical-align象表格元素那样对齐了,当然这只是在标准浏览器下,IE6/IE7还得使用定位。
HTML结构部分:
以下为引用的内容: <div id="box"> |
CSS样式部分:
以下为引用的内容: <style type="text/css"> |
方法二 (XHTML 1.0 transitional):
方法二和方法一的实现的原理大同小异,结构也是相同的,方法一用的是条件注释,方法二就用的CSS Hack。
CSS样式部分:
以下为引用的内容: <style type="text/css"> |
该方法有个弊端,在标准浏览器下由于外部容器#box的显示模式为display:table-cell,所以导致#box无法使用margin属性,并且在IE8下设置边框也无效。
方法三 (XHTML 1.0 strict):
标准浏览器还是将外部容器#box的显示模式设置为display:table-cell,IE6/IE7是利用在img标签的前面插入一对空标签的办法。
HTML结构部分:
以下为引用的内容: <div id="box"><i></i><img src="images/demo.jpg" alt=""></div> |
CSS样式部分:
以下为引用的内容: <style type="text/css"> |
方法三也同样适用XHTML 1.0 transitional。以上方法都是收集于蓝色理想,暂时只对这3个方法比较满意,兼容性方面不错,使用起来的限制也比较小,还有些方法我也都一一测试过,效果都不理想,在各浏览器中的差异比较大。另外司徒正美这里也收集了一些方法。
思考:很多方法都是依赖于将外部容器的显示模式设置成table才能实现垂直居中,也就是div来模拟table,如果CSS有一个属性来实现这种效果那该多好。如果你也有好的方法,欢迎你来分享。
相关新闻
更多相关新闻>>- 10个优秀的网站设计中文图片源素材
- 2009/11/25
- 4个Web网站图片在线压缩优化 能使图片小的工具
- 2009/10/10
- 网页设计-网站建设图片优化工具
- 2009/10/17
- 申请百度重新收录,写给百度的信
- 2008/8/7
- 网站:漂亮的图片区域设计
- 2010/1/23
- 影响网站打开速度的9大因素
- 2011/8/16
- 网站优化价格与关键词优化竞争强度的关联
- 2009/5/9
- flash加载外部图片等比缩放类(as3)
- 2009/12/24
- 提高页面加载速度之图片优化
- 2009/6/18
- 分享优化网页加载速度的七个技巧
- 2010/4/14