让大小不定的图片水平垂直居中

实现大小不定图片的水平、垂直居中方案。

效果

效果

方法

html结构如下:

<ul class="wrap">
    <li><img src="https://dummyimage.com/300x200/333/EEE.png"></li>
    <li><img src="https://dummyimage.com/100x200/ff5566/EEE.png"></li>
    <li><img src="https://dummyimage.com/200x150/333/EEE.png"></li>
    <li><img src="https://dummyimage.com/100x100/fe56ed/EEE.png"></li>
    <li><img src="https://dummyimage.com/50x200/5e66ed/EEE.png"></li>   
</ul>

法一:仿单行文字居中

  • li上加text-align: center;实现图片水平居中
  • 设置liline-heightheight相等,并设置img垂直对齐为vertical-align: middle;,实现垂直居中
li {
  display: inline-block;
  width: 300px;
  height: 300px;
  text-align: center;
  line-height: 300px;
}

img {
  vertical-align: middle;
}
  • 优点:兼容性好。

法二(推荐):display: table-cell;

  • li上使用display: table-cell;,然后设置水平、垂直居中即可。
li {
    display: table-cell;
    width: 300px;
    height: 300px;
    text-align: center;
    vertical-align: middle;
}
  • 优点:简洁。

法三:position + transfrom

  • 使用绝对定位与transform结合,实现水平、垂直居中。
li {
    position: relative;
    width: 300px;
    height: 300px;
}

img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
  • 优点:通用的居中方法,方便记忆,兼容性好。
  • 缺点:使用transform容易出现半个像素渲染模糊的情况。

法四(推荐):flex布局

  • 利用flex布局自带属性实现水平、垂直居中。
li {
    display: flex;
    width: 300px;
    height: 300px;
    justify-content: center;
    align-items: center;
}
  • 优点:简单方便,代码量少。
  • 缺点:不兼容低版本浏览器。

法五:背景定位

  • 利用background-position: center实现图片居中显示

html结构变更为:

<ul class="wrap">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
</ul>
li {
    width: 300px;
    height: 300px;
    background-position: center center;
    background-repeat: no-repeat;
}

li:nth-child(1) {
    background-image: url(https://dummyimage.com/300x200/333/EEE.png);
}

li:nth-child(2) {
    background-image: url(https://dummyimage.com/100x200/ff5566/EEE.png);
}

li:nth-child(3) {
    background-image: url(https://dummyimage.com/200x150/333/EEE.png);
}

li:nth-child(4) {
    background-image: url(https://dummyimage.com/100x100/fe56ed/EEE.png);
}

li:nth-child(5) {
    background-image: url(https://dummyimage.com/50x200/5e66ed/EEE.png);
}
  • 优点:简单,兼容性好。
  • 缺点:卸载css文件中则不支持动态修改。

参考

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,222评论 3 30
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,638评论 0 26
  • 20170427 7FC记全球老大,今天在广州为思科创新园区奠基。 昨天:汪洋会见美国客人 http://www....
    taoza阅读 216评论 1 1
  • 2018.07.08 1.感恩上师三宝及诸佛菩萨的护佑和加持,感恩上师慈悲加持,令我满愿。 2.感恩业力伙伴准时和...
    鹊曾阅读 78评论 0 0