A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我们在应用图片的时候经常会碰到要让图片在容器里居中的情况,水平居中很简单直接给容器添加text-align: center;就ok了。那么垂直居中呢?是不是给img加vertical-align: middle;就可以了呢?
答案显然是否定的,单纯的给img加vertical-align: middle;并不能行,我平时用的比较多的办法有两种。
方法一:
<style type="text/css">    body,p {        margin: 0;        padding: 0;        }    div {        width: 300px;        height: 300px;        border: 1px solid #c6c6c6;        margin: 50px auto;        text-align: center;        }    a {        display: inline-block;        vertical-align: middle;        }    span {        display: inline-block;        width: 0;        height: 100%;        vertical-align: middle;         }    img {        border: 1px solid #00f;        }</style></head><body><div>        <a href="#"><img src="images/img_03.jpg" /></a><span></span></div></body>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
我的做法是添加一个空的span标签,然后给span标签设置成100%的高再让它居中,这样就能让a标签页同时居中。有些人会问你为啥要给img包a标签呢?实际应用中我们的图片经常都是需要可以被点击的跳转链接的。如果你的图片不需要被点击你也可以直接把vertical-align: middle; 加在img中。像这样
img {        border: 1px solid #00f;        vertical-align: middle;        }<div>        <img src="images/img_03.jpg" /><span></span></div>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
效果是一样的。
方法二:
这个很简单,之间用  (div高 - 图片高) /2  然后设置margin-top 就ok了,但这么做不能够自适应,纯靠人工计算显得有点蠢。
下面是两种方法的实现效果图:



写得不对的地方欢迎交流指正,码字不易,拒绝未沟通情况下转载。CSDN博客:PromiseCao;

---------------------本文来自 幻想山外小楼听雨 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/promiseCao ... 328?utm_source=copy

1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马