• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > css实现的让图片垂直居中的方法

css实现的让图片垂直居中的方法

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含图片,垂直居中等相关知识,佚名 希望在学习及工作中可以帮助到您

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

但是实际中实现的效果并不是很完美,由于各浏览器的解析都各不相同,所以各浏览器都会有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]-->

方法二 (XHTML 1.0 transitional):

方法二和方法一的实现的原理大同小异,结构也是相同的,方法一用的是条件注释,方法二就用的CSS Hack。

CSS样式部分:

<style type="text/css">
#box{
width:500px;height:400px;
overflow:hidden;
position:relative;
display:table-cell;
text-align:center;
vertical-align:middle;
border:1px solid #d3d3d3;background:#fff;
}
#box span{
position:static;
*position:absolute; /*针对IE6/7的Hack*/
top:50%; /*针对IE6/7的Hack*/
}
#box img {
position:static;
*position:relative; /*针对IE6/7的Hack*/
top:-50%;left:-50%; /*针对IE6/7的Hack*/
border:1px solid #ccc;
}
</style>

该方法有个弊端,在标准浏览器下由于外部容器#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">
#box{
width:500px;height:400px;
display:table-cell;
text-align:center;
vertical-align:middle;
border:1px solid #d3d3d3;background:#fff;
}
#box img{
border:1px solid #ccc;
}
</style>
<!--[if IE]>
<style type="text/css">
#box i {
    display:inline-block;
    height:100%;
    vertical-align:middle
    }
#box img {
    vertical-align:middle
    }
</style>
<![endif]-->

方法三也同样适用XHTML 1.0 transitional。以上方法都是收集于微课江湖,暂时只对这3个方法比较满意,兼容性方面不错,使用起来的限制也比较小,还有些方法我也都一一测试过,效果都不理想,在各浏览器中的差异比较大。另外司徒正美这里也收集了一些方法。

思考:很多方法都是依赖于将外部容器的显示模式设置成table才能实现垂直居中,也就是div来模拟table,如果CSS有一个属性来实现这种效果那该多好。如果你也有好的方法,欢迎你来分享。

原文:http://stylechen.com/img-middle.html

您可能想查找下面的文章:

  • CSS实现鼠标上移图标旋转效果
  • CSS实现背景图片透明而文字不透明效果的两种方法
  • CSS3实现瀑布流布局与无限加载图片相册的实例代码
  • CSS3 Notes: -webkit-box-reflect实现倒影的实例
  • 使用CSS3实现一个3D相册效果实例
  • 无需JS和jQuery代码实现CSS3鼠标浮动放大图片
  • 利用纯css实现图片翻转的效果
  • 利用CSS定位背景图片的常用方法总结
  • 利用CSS3把图片变成灰色模式的实例代码
  • css样式图片、渐变、相关小知识(必看)

相关文章

  • 2017-08-06CSS border三角、圆角图形生成技术详解
  • 2017-08-06CSS3旋转——彩色扇子兼容firefox浏览器
  • 2017-08-06CSS制作箭头图标代码(圆,三角形,椭圆)
  • 2017-08-06display:none和visibility:hidden的差别比较与演示代码
  • 2017-08-06同一html页面中不同链接的不同样式的css代码
  • 2017-08-06网页制作小技巧 dl dt dd标签用法
  • 2017-08-06支持IE8的纯css3开发的响应式设计动画菜单教程
  • 2017-08-06css让页脚始终在底部不论页面内容多少
  • 2017-08-06收罗CSS布局中有关水平和垂直居中的N种方法
  • 2017-08-06FireFox火狐浏览器与IE兼容问题 - 透明滤镜 DIV滚动条

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • CSS的background属性的缩写顺序介绍
    • css中style和class的加载顺序示例介绍
    • 纯CSS3单页切换导航菜单界面设计的简单实现
    • 关于读取style元素定义样式表的兼容问题实例探讨
    • 一款恶搞头像特效的制作过程 利用css3和jquery
    • 纯css实现的六边形(蜂窝)导航效果(支持hover/兼容浏览器)
    • css截取字符串简单实例
    • CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
    • CSS中的边界margin的取值为负值说明
    • CSS background全部汇总

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有