当前位置:首页 > 技术 > 前端 > 让html img图片垂直居中的三种方法

让html img图片垂直居中的三种方法

DChen3年前 (2021-07-06)前端2.17 K0

三种让img元素图片在盒子内垂直居中的方式教程,依据代码文章教程熟习掌握并加以应用。

一、使用flex完成垂直居中

操纵css flex实现垂直居中。flex或许不是完成垂直居中最好的选择,由于IE8,9其实不赞成它。

那时,为了用flex实现垂直居中,我们起首要竖立一个包裹着图片的div元素,日后给它定义一些根基属性。

如下图片img宽度为(设置为)100px,高度为100px。

html代码部份:

<div class="flexbox">
    <img src="1.jpg" alt="">
</div>

CSS代码一部分:

body{ background:#999}
.flexbox{width: 300px;height: 250px;background:#fff;display: flex;align-items: center}
.flexbox img{width: 100px;height: 100px;align-items: center;}

效果:

让html img图片垂直居中的三种方法  css 第1张

诠释:
1、为了用flex完成垂直居中,我们首先要建树一个包裹着图片的div元素,今后给它定义一些基础底细属性。
2、div元素的display属性设置装备摆设为flex。
3、div增加其它一条属性align-items: center;


二、操作Display: table;完成img图片垂直居中

html代码:

<div class="tablebox">
    <div id="imgbox">
        <img src="1.jpg" alt="">
    </div>
</div>

CSS代码:

.tablebox{width: 300px;height: 250px;bac千克round: #fff;display: table}
#imgbox{display: table-cell;vertical-align: middle;}
#imgbox img{width: 100px}

评释:
1、起首咱们先要建设一个div元素以及其它一个采集图片的div元素,从此咱们开始配置它的名目。
2、给img父元素设置display属性为table
3、把包裹图片的那个div元素的display属性设置为table-cell
4、为了实现垂直居中,咱们其时要做的即是给包裹图片的div元素配置vertical-align: middle;属性

把稳:要是你也想完成程度居中,你可以给最外层的div元素增进text-align: center属性,寄望不是id=”img”的div


三、用绝对定位完成垂直居中(举荐-兼容性好)

HTML代码:

<div class="posdiv">
    <img src="1.jpg" alt="">
</div>

CSS代码:

body{background: #ccc;}
.posdiv{width: 300px;height: 250px;background: #fff;position: relative; margin:0 auto}
.posdiv img{width: 100px;position: absolute;top: 50%;margin-top: -50px;}

注解:
1、一张包裹在div中的img图片,咱们给不光给图片以及div元素界说了尺寸,还给div元素定义了#fff的靠山色(靠山色彩可以依据需求配置)。
2、给img的父元素增多相对定位属性(position: relative),同时,要给子元素也即是图片img元素增进相对于定位属性(position: absolute)。
3、将图片元素的top属性设置装备摆设为50%。
4、那时咱们需求给img元素配置一个负的margin-top值,这个值为你想要完成垂直居中的元素高度的一半,*假定不必定元素的高度,可以不应用margin-top,而是应用transform:translateY(-50%);属性。
记着:假如你想要同时完成程度居中,那末你可以用完成垂直居中的异样的伎俩来完成。


取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

版权声明:本文由“憨小猪”发布,如需转载请注明出处。

本文链接:https://www.phper.red/post/132.html

标签: css

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。