<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里面的图片水平与垂直居中的方法的更多相关文章

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

    <div class=“box”> <img /> </div> 水平居中的常用方式: text-align:center ——这可以实现子元素字体,图片的水平居中 ...

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

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

  3. 让DIV中的内容水平和垂直居中

    让一个层水平垂直居中是一个非常常见的布局方式,但在html中水平居中使用margin:0px auto;可以实现,但垂直居中使用外边距是无法达到效果的.(页面设置height:100%;是无效的),这 ...

  4. 如何让DIV相对于body水平和垂直居中

    我们在设计页面的时候,经常要把DIV居中显示,而且是相对页面窗口水平和垂直方向居中显示,如让登录窗口居中显示.我们传统解决的办法是用纯CSS来让DIV居中.在本文中,我将给大家讲述如何用CSS和jQu ...

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

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

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

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

  7. css 水平、垂直居中

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

  8. css样式水平居中和垂直居中的方法

    水平居中(包含块中居中) 1. 定宽,左右margin为auto.(常规流块盒.弹性项目[不用定宽]) 例子:在box1盒子上设置宽,再设置margin:auto: <style> .bo ...

  9. CSS实现图片在div a标签中水平垂直居中

    CSS实现图片在div a标签中水平垂直居中 <div class="demo"> <a href="#"> <img src=& ...

随机推荐

  1. ajax接受json响应

    一.显示页面(ajax_xml.html) body部分 <!-- 支持多选的列表框 --> <select name="first" id="firs ...

  2. shell 参数记录

    $0  执行脚本的名称 $* 和 $@ 所有参数 $#  参数个数 $_  上个命令的最后一个参数 $$  代表当前命令所在的pid $!  代表最后执行的 '后台' 命令的pid $? 代表上条命令 ...

  3. springboot小技巧(转)

    一些springboot小技巧.小知识点 初始化数据 我们在做测试的时候经常需要初始化导入一些数据,如何来处理呢?会有两种选择,一种是使用Jpa,另外一种是Spring JDBC.两种方式各有区别下面 ...

  4. 记一次诡异的jetty问题

    问题出现 用eclipse开发,用jetty跑某个项目时,如果是jsp页面,会出现以下错误. ------------------------------------------------ java ...

  5. spring boot入门 -- 介绍和第一个例子

    "越来越多的企业选择使用spring boot 开发系统,spring boot牛在什么地方?难不难学?心动不如行动,让我们一起开始学习吧!" 使用Spring boot ,可以轻 ...

  6. tensorflow ckpt文件转caffemodel时遇到的坑

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } p.p2 ...

  7. [置顶] Xamarin android 调用Web Api(ListView使用远程数据)

    xamarin android如何调用sqlserver 数据库呢(或者其他的),很多新手都会有这个疑问.xamarin android调用远程数据主要有两种方式: 在Android中保存数据或调用数 ...

  8. bzoj 1835: [ZJOI2010]base 基站选址

    Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄 ...

  9. bzoj 1196: [HNOI2006]公路修建问题

    Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织 ...

  10. tomcat 设置jvm 参数

    在catalina.bat中设置 正确的做法是设置成这样set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx256m,避免JAVA_OPTS参数覆盖