page contents

HTML 图片居中对齐方式以及代码

图片的居中方式有很多种吧,算是html基础,但是某一次我就给忘记怎么设置图片居中了。先写几个,后续再来补充其他方法 div{width: 200px;height: 200px;border: 3px solid skyblue;} 以上...

attachments-2021-06-OoznJ7II60c02519852bb.png

图片的居中方式有很多种吧,算是html基础,但是某一次我就给忘记怎么设置图片居中了。先写几个,后续再来补充其他方法

div{
width: 200px;
height: 200px;
border: 3px solid skyblue;
}

attachments-2021-06-nPxAlRGZ60c023e07883d.png

以上代码的效果图:     

attachments-2021-06-lHq8Hape60c023f22a5a1.png


解决方法一:

img{
position: relative;
left: 50%;
top: 50%;
margin: -70px 0 0 -70px;
}

给img标签设置position定位,position:relative,left:50%;top:50%分别指将改元素向右移动一半父容器宽度的距离以及向下移动一半父容器高度的距离,由于移动的距离是以父容器为标准的一半高度宽度距离,效果如下:

attachments-2021-06-fqUbfFFq60c02420232e7.png

因为这张图片较大,所以超出了div的范围。。。

之后要将 img往回移动,才能使img元素居中显示,margin: -70px 0 0 -70px;指的是将img元素向左移动70px,向上移动70px(因为用的图片素材的宽高为140*140),这样便能使得图片居中了。

上效果图   

attachments-2021-06-lSzHDZTw60c02443b1682.png


解决方法二:

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

其实这里跟上面的方法是类似的,但是个人觉得这种比较实用,因为方法一有个麻烦的地方,就是margin值必须跟着img元素的大小变化,如果说img元素都是一样的大小倒无所谓,但是这种要求未免有些高。

这种做法是用的2d转换,transform:translate(x轴移动的数值,y轴移动的值),这个方法的好处便在于不用去测量img元素的宽高,直接设置百分比,在transform:translate()中,使用的百分比其实是相对于元素自身宽高的。


解决方法三:

        代码展示:

<div class="parentBox">
<div class="box"> 
<img src="2.jpg" width="100" height="100" />
</div>
</div>

设置为两级父容器,第一级设置display:table,将第一级父容器转换成表格类型,

.parentBox {
width: 200px;
height: 200px;
border: 1px solid red;
/*  */
display: table;
text-align: center;
}

之后在第二级,也就是img的上一级父容器设置display:table-cell,

.box{
display: table-cell;
vertical-align: middle;
}

在第一级父容器中设置text-align:center,

第二级设置vertical-align: middle,便可以达到将图片居中的目的

效果图:

attachments-2021-06-PA71Fn6T60c02482487db.png

解决方法四:

设置主侧轴对齐方式

<div class="a">
<img src="img/MEIZU.png" >
</div>
div.a{
width: 600px;
height: 200px;
border: 1px solid saddlebrown;
display: flex;
justify-content: space-around;
align-items: center;
}
div.a img{
border: 1px solid red;
}

给父容器设置display:flex,将父容器转换成伸缩盒子,因为应用主侧轴对齐方式就需要这样。。。。

之后再设置主轴对齐方式为 justify-content: space-around; 

注意: Internet Explorer 10 及更早版本浏览器不支持 justify-content 属性。

注意: Safari 6.1 及更新版本通过 -webkit-justify-content 属性支持该属性。

接着设置父容器的侧轴对齐方式,align-items: center;

注意: Internet Explorer 10 及更早版本浏览器不支持 align-items 属性。

注意: Safari 7.0 及更新版本通过 -webkit-align-items 属性支持该属性。

看啥呢,图片这样就已经居中了啊。

如果不是因为Internet Explorer 10 及更早版本浏览器不支持,其实这个方法算是最合适的吧。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-v7V54W7962ac2f4175013.jpeg

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章