<div class=“box”>
  <img />
</div>

水平居中的常用方式:

  text-align:center ——这可以实现子元素字体,图片的水平居中

  margin:0 auto —— 这是针对块元素的水平居中方法

垂直居中的常用方式:

    vertical-align: middle;——这个垂直居中属性,只对 inline 或者 inline-block 元素有效。

    这里没考虑flex的垂直居中的用法

div中图片水平和垂直居中方式:

  第一种方式:直接手动计算的方式。已知box的高度和图片的高度

.box{
width: 300px;
height: 300px;
border: 1px solid red;
text-align: center;
}
img{
width: 80px;
height: 80px;
padding-top: 110px;
}

备注:这种方式是:用box的高度减去图片的高度再除以2,就是padding-top的值,当然也可以使用margin-top,这样也可以实现图片在div里垂直居中。水平居中就用 text-align: center; 就行了。

  第二种方式:图片已知宽高

 img{
    position:relative;
    top:50%;
    left:50%;
    margin-top:负图片height的一半;
    margin-left:负图片width的一半;
  }

  第三种方式:图片未知宽高,box最好固定高度。

img{
position: relative;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}

备注:如果不固定,自适应高度的话,图片估计会跑到div的上面一点。这种是使用css3的方式来实现水平垂直居中,当然兼容性的话,不支持transform就不支持这种方式了

  第四种方式: 把box当做单元格,box的宽高可不用设置,让图片自己扩张也行。这种方式box的宽高最好固定。当然不固定也能实现效果。

.box{
width: 300px;
height: 300px;
vertical-align: middle;
text-align: center;
display: table-cell;
border: 1px solid red;
}

备注: display: table-cell 相当于是把标签元素当作一个单元格来处理。唯一的缺点就是IE6/7不兼容。  

  第五种方式:使用table来达到水平垂直居中的效果。table的宽高已知

html:

 <table class="img_meng_show">
  <tr>
    <td>
       <img src="">
    </td>
  </tr>
</table>

css:  

 .img_meng_show td{
   vertical-align: middle;
   text-align: center;
}

DIV水平和垂直居中的方法:

第一种方式:

HTML:

<div class="box></div>

css:

 .box{
  position:absolute(或者是fixed);
  top:;
  left:;
  bottom:;
  right:;
  margin:auto;
  width:100px;
  height:200px;
}

 这个能实现div垂直和水平居中,但是必要条件就是宽高必须加上,margin也必须加上。如果想里面的图片也水平和垂直居中,可以参照上面图片用margin-left这种方式;

 如果只想垂直居中,只要top与bottom,然后 margin:auto 0;

 同理,只想水平居中,只要top与bottom,然后 margin: 0 auto;

 但是这种方法不支持ie8以下。

 第二种方式:

使用css3 translate的方法,也能让div垂直水平居中:

.box{
position: fixed(或者absolute);
top: 50%;
left: 50%;
width: 100px;
/*height: 100px;*/高度可以不定死
background: skyblue;
transform: translate(-50%,-50%);
}

如果是div中的div,即

<div class="out">
<div class="in"></div>
</div>

这种结构,也可以参考图片在div中水平和垂直居中的方式实现。只是块元素的水平居中的话 text-align: center; 要换成 margin: 0 auto;

DIV或者DIV里面的图片水平与垂直居中的方法的更多相关文章

  1. DIV里面的图片水平与垂直居中的方法

    <div class=“box”> <img /> </div> 1.水平居中: 1)box设置  text-align:center ;    text-alig ...

  2. 使图片水平并垂直居中的一个Hack

    淘宝的一个前端面试题:使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中. 想起了vertical-align:middle;但是不行,后来才知道还要di ...

  3. css设置图片水平及垂直居中

    .box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:cen ...

  4. js脚本控制图片水平与垂直居中

    使用方法: 1.定义ResizeImg(obj)方法 function ResizeImg(obj) { var boxHeight = $(".box").height(); v ...

  5. css 水平、垂直居中

    水平居中 行内元素 行内元素:(img.span.文字等行内元素),通过在父级元素设置 text-align:center 使元素水平居中. 块级元素 块级元素:(div.p.h1...h6.ul.l ...

  6. 实现div里的img图片水平垂直居中

    body结构 <body> <div> <img src="1.jpg" alt="haha"> </div> ...

  7. DIV元素水平和垂直居中

    在前端开发过程中,经常要对元素进行居中设置.一般有水平居中,和垂直居中.一般设置水平居中简单.基本是margin:0 auto,就可以了.但是垂直居中,我们有时会觉得使用vertical-align, ...

  8. CSS:使用CSS3将一个div水平和垂直居中显示

    使用css3将一个div水平和垂直居中显示 方案一: div绝对定位水平垂直居中[margin:auto实现绝对定位元素的居中], 代码两个关键点:1.上下左右均0位置定位: 2.margin: au ...

  9. 使当前对象相对于上层DIV 水平、垂直居中定位

    <!doctype html> <html> <head> <meta http-equiv="content-type" content ...

随机推荐

  1. 作业20171130 final发布 成绩

    申诉 对成绩有疑问或不同意见的同学,请在群里[@杨贵福]. 申诉时间截止2017年12月16日 17:00. 更新 第一周和第二周成绩分别应占比20%和10%,计算时刚好反了.所以同学们的最终成绩有变 ...

  2. hots团队项目终审报告

    一.团队成员: 徐钧鸿: 1994年1月19日生人,摩羯座最后一天.所以有摩羯的强迫症和水瓶古怪的性格 暂且算队长吧…… 高中的时候因为兴趣学了竞赛,于是就入坑了,于是就来北航学计算机了 兴趣面很广, ...

  3. elastic-search-kibana-in-docker-dotnet-core-app

    [翻译] 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据   原文地址:http://www.dotnetcurry.com/aspnet/1354/e ...

  4. Java日志输出问题

    以前有一个同事,说自己的Java控制台程序,输出的信息,打印信息以及错误信息,在windows的command line刷屏,想复制下来,想要自输出到日志文件里. 自己写文件太麻烦,他从网上只找到用重 ...

  5. jQuery中click事件多次触发解决方案

    jQuery 中元素的click事件中绑定其他元素的click事件. 因为jQuery中的click事件会累计绑定,导致事件注册越来越多. 解决方案: 1.能够避开,避免把click事件绑定到其他元素 ...

  6. Docker 部署Gitlab

    sudo docker run -d \ -h 192.168.16.88 \ -p 89:80 -p 23:22 \ --name gitlab \ --restart always \ --vol ...

  7. jmeter(psot) 表单提交 注意项

    Form表单提交:直接使用表单方式提交即可,此方式采取页面直接跳转的形式.用jmeter请求的时候,日志打印传的参数是空的.考虑到form提交和http的提交请求头可能是不一样的,所以优化了请求头: ...

  8. [日常工作] SUSE设置上网ip地址

    1. 同事搜到的命令 ifconfig eth0 10.24.25.8 netmask 255.255.0.0 up route add default gw 10.24.255.254 2. 修改 ...

  9. python学习笔记四——循环及冒泡排序

    3.3.3 break 和 continue语句 break:跳出整个循环 continue:跳出当前循环继续后面的循环 例: x=int(input("please input the ' ...

  10. Scala常用命令

    :q    退出控制台 控制台换行    空格 + 回车