CSS居中方案大全

html-css010

CSS居中方案大全,第1张

如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客 https://github.com/BokFang

在这里总结一下CSS水平居中、垂直居中的各种方式。应该说非常全了。

总览一下:

用法:在父级元素的样式中添加 text-align:center

效果图:

用法:在元素样式添加 margin:0 auto ,使其margin-left和margin-right平分块级元素那一行剩余的宽度。

效果图:

当然如果你的块级元素没有设置width,那么div就会占满一行,也就没有水平居中的说法了。

如果由多个块级元素,则可以使用 inline-block 配合 text-align:center ,将 inline-block 写在需要居中的元素样式上, text-align:center 写在父级元素上。

效果图:

使用flex也可以轻松做到多个块级元素水平居中

用法:在父级元素样式增加 display: flex justify-content: center

效果图与第三个一样。

当然,多个块级元素能用的居中方法,在单个块级元素上也同样可以使用。

使用 display:table 配合 margin:0 auto ,可以达到不定宽块级元素居中效果。

效果图:

使用绝对定位给元素一个left:50%,然后再加一个margin-lelt:-(宽度的一半)

效果图:

不过缺点很明显,就是你知道元素宽度而且得固定不变,所以是比较蠢的一种写法。

效果图:

效果图:

这个方法和水平居中的第6个方法一样,就不多说了。

效果图:

这个和水平居中的第7个方法一样,我也就不多说了。

效果图:

效果图:

效果图:

缺点也比较明显,需要计算。

效果图:

效果图:

效果图:

需要在html中加入 <table>标签,比较低效,我就不详写了,想了解的朋友可以Google搜索一下。

如果您觉得我的文章有用,欢迎点赞和关注,也欢迎光临我的个人博客 https://github.com/BokFang

HTML:

CSS:

重点:父容器高度和子元素line-height一样的数值,内容中的行内元素就会垂直居中。

HTML:

CSS:

重点:给父元素添加一个伪元素::before,让这个伪元素的div高度为100%,这样其他div就可垂直居中了,但div 本身就是块级元素,而vertical-align是行内元素属性,则需要修改为inline-block。

HTML:

CSS:

重点:在父元素中设置相对定位position: relative,子元素设置绝对定位 position: absolute;top和left相对父元素的50%,与其搭配的 transformse: translate(-50% , -50%)表示X轴和Y轴方向水平居中。

HTML:

CSS:

重点:子元素绝对定位position:absolute,父元素相对定位position: relative,将上下左右的数值都设置为0,同时margin:auto。绝对定位是会脱离文档流的,这点要注意一下。

HTML:

CSS:

重点:给父元素设置display: flex布局,水平居中 justify-content: center,垂直居中align-items: center。

HTML:

CSS:

重点:父元素position定位为relative,子元素position定位为absolute。水平居中同理。calc居中要减多少要结合到自己的宽高设置多少再进行计算。

HTML:

CSS:

重点:将父元素设置display:table,子元素table-cell会自动撑满父元素。组合 display: table-cell、vertical-align: middle、text-align: center完成水平垂直居中。

通常首选方法是使用 flexbox 居中内容。只需三行代码即可: display:flex ,然后使用 align-items:center 和 justify-content:center 将子元素垂直和水平居中。

如下代码:

html:

css:

使用grid(网格)与flexbox非常相似,也是一种常见的技术,尤其是布局中已经使用网格的情况下。与前一种flexbox技术的唯一区别是它显示为栅格。

如下代码:

html:

css:

使用css transform 居中元素,前提是容器元素必须设置为 position:relative ,然后子元素使用 left:50%和 top:50% 偏移子元素,最后使用 translate(-50%,-50%) 以抵消其偏移的位置。

代码如下:

html:

css:

最后,表格居中是一种旧技术,在使用旧浏览器时,您可能会喜欢这种技术。前提是容器元素设置为 display:table ,然后子元素设置为 display: table-cell ,最后使用 text-align: center 水平居住和 vertical-align: middle 垂直居中。

代码如下:

html:

css: