前言

本篇文章主要介绍如何使用 html+css 实现元素的的水平与垂直的居中效果,这是我们在网页编码过程中经常遇到的问题。

布局分类

一、水平居中布局

效果图:

8c87fa2047a3921186dcac553bda9223.png

1.inline-block+text-align

利用 display:inlin-block 将元素设置为具有文本元素的性质,然后利用文本对齐属性 text-align 来设置对齐方式,center 即为水平对齐

30b4c59fd49505c8196584cbde29aa84.png

2.定位 + transform

父元素开启定位,子元素设置绝对定位,left 设置为 50%,再使用 transform: translateX(-50%)将子元素往反方向移动自身宽度的 50%,便完成水平居中。

4f61892c8646998e69ba96b576e33af2.png

3.display:block + margin:0 auto

通过对子元素设置便可以实现水平居中,设置 margin 为 auto 表示浏览器自动分配,实现外边距等分

a1287127dbe00e12bd876783ee5d5b78.png

二、垂直居中布局

效果图:

649129011a86b81a80b11ba4fc276e1a.png

1.定位+transform

与水平居中第二种方法相同的原理,利用 top 为 50%,再设置 transform:translateY(-50%),既可以实现垂直居中

be837a9cf34b1192d2a88c7a5a4a66a8.png

2.display:table-cell + vertical-align

通过设置 display:table-cell 使元素具有 td 元素的行为,使得子元素具有类似文本元素的布局方式,然后在父元素中设置 vertical-align:middle,实现元素的垂直居中

e8b474ae4dc988849a8fb99b43473137.png

三、水平垂直居中布局

效果图:

9640aff8928132a928a02fec5b7649fd.png

1.定位+transform

父元素开启定位,子元素设置绝对定位,left 设置为 50%,top 设置为 50%,再使用 transform: translate(-50%,-50%)将子元素往反方向移动自身宽度的 50%,便完成水平垂直居中。

de310d06c9f9936971b2bc884f45b71d.png

2.结合水平布局 3,垂直布局 2

a8fba7de00e700c0f01296988d062cbd.png

3.flex 布局

使用 flex 布局,align-items:center 垂直居中 ,justify-content:center 水平居中

a8349f7f58bfbc8ecd90c63e54acf77d.png

结尾

这里仅仅是介绍几种常用的方法,并不是全部,布局方法太多了,还需要慢慢摸索

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐