通过纯css实现图片居中的多种实现方式

html结构:

1 <div class="demo" style="width: 800px;height: 600px; border:1px solid #ddd">
2     <img src="default.jpg" width="400" height="300"/>
3 </div>

实现img位于外层div的居中显示,网上有很多在img外层嵌各式各样的span、div、li等等,以便于使用 text-align来进行居中,不推荐嵌套多层的方式。

方法一(推荐):

1 .demo{
2     display:table-cell; text-align:center; vertical-align:middle;
3 }
4 .demo img{
5     vertical-align: middle;
6 }

思路:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签,使用它可以让大小不固定元素垂直居中

方法二(推荐用于webapp):

1 .demo{
2     display: -webkit-flex;
3     display: flex;
4     -webkit-align-items: center;
5     align-items: center;
6     -webkit-justify-content: center;
7     justify-content: center;
8 }

思路:实现css6的flex属性,很简单的实现了居中显示,但是推荐使用于web App,低版本浏览器存在一定兼容问题

由于知道父级元素和子级元素的长和宽,可以通过margin ,padding 计算写出:

方法三:

1 .demo img{
2     display: block;
3     margin:150px auto;
4 }

思路:<img>标签是属于内联元素,内联元素是不支持 Margin 属性,通过 Display 属性将img强制为块元素的方式显示,便可在图文混排中使得图片可以居中。

方法四:

1 .demo img{
2     padding:150px 200px;
3 }

方法五:

1 .demo{
2     position: relative;
3 }
4 .demo img{
5     position: absolute;top:150px;left:200px;
6 }
时间: 2024-11-09 01:23:29

通过纯css实现图片居中的多种实现方式的相关文章

CSS3实战开发: 纯CSS实现图片过滤分类显示特效

各位网友大家好,今天我要带领大家开发一个纯CSS的图片分类显示的网址导航,单纯看标题大家可能有些困惑,依照以往惯例,我先给大家演示一下实际运行效果: 从上面的运行效果,大家不难发现,当我点击某一菜单时,导航区域会相应高亮显示此分类的图标,而其他图标则会变暗. 很多人可能会说,这个这么简单,直接使用javascript或jQuery等前端框架,再配合一些CSS,就可以很快实现同样的效果了.如果你是这一部分人,我也希望你停下脚步,看看这篇教程.因为在今天这篇教程中,我会用另一个思维方式来思考问题,我

纯CSS实现图片

在Web开发中,通过CSS代码也可以实现一些简单的图片,当然,如果你有耐心,也可以实现较为复杂的图片噢. 那么请问为什么有图片不去用而需要用CSS来实现呢?一是因为性能的原因,图片带给服务器和客户端的压力比几行CSS代码要大得多:二是因为没有必要,有些简单的效果利用CSS就可以直接完成了,为什么还需要麻烦地引入图片呢? 比如大名鼎鼎的bootstrap中选择列表的下三角就是通过css实现的.效果如下: 其实现代码如下: <ul> <li class="dropdown"

css设置图片居中、居左、居右

CreateTime--2017年12月8日14:25:09 Author:Marydon 图片一般默认是居左显示的,如何更改它的水平位置呢? <div style="border:1px solid red;">图片居中展示</div> <img style="display:block; margin:0 auto;" src="http://files.cnblogs.com/files/Marydon20170307/

关于HTML+CSS设置图片居中的方法

有的时候我们会遇到这样一个问题,就是当我们按下F12进行使用firebug调试的时候,我们发现图像没有居中,页面底下有横向的滑动条出现,图片没能够居中,默认状态下只是紧靠在页面最左侧,而我们对图像缩小的时候,图像依然紧靠在页面最左侧,所有我们需要对图像设置居中,无论放大或者缩小页面,都使得图像至始至终都显示在页面的中间. 代码如下 HTML: <html> <head> </head> <body> <div class="backgroun

CSS div 图片居中

<style>.box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:center; /* 针对IE的Hack */ *display: block; *font-size: 175px;/*约为高度的0.873,200*0.873 约为175*/ *font-family:Arial;/*防止非utf-8引起的hack失效问题,如gbk编码*/ width

纯CSS实现图片抖动

实现方法: 1.将上文提到的以下JS内容删除: $(".imagelogo").mouseover(function() { obj = $(this); i = 5; timer = null; clearInterval(timer); timer = setInterval(function(){ obj.css({"position":"relative","left":i+"px"}); i =

纯CSS实现图片列表悬停放大特效

<!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><meta http-equiv="Content-Typ

css 两列布局的多种实现方式及原理。

两列布局是非常常见的需求在实际项目中,实现的方式也有很多.这里提供几种实现方式和原理.供大家参考 页面基本布局如下代码所示: 1 <div class="main"> 2 <div class='left'> 3 左侧 1 4 </div> 5 <div class='right'> 6 右侧 1 7 <div>假如div很多的话</div> 8 <div>假如div很多的话</div> 9

前端技术之CSS实现图片垂直居中

前端技术之CSS实现图片垂直居中技术 maybe yes 发表于2015-03-14 18:52 原文链接 : http://blog.lmlphp.com/archives/86/The_front-end_technology_pure_CSS_to_achieve_image_vertically  来自 : LMLPHP后院 让 图片实现水平居中比较简单,只需要在父级容器中添加属性 text-align 为 center 即可.使用纯 CSS 实现图片的垂直居中,可以将图片包裹容器的 d