CSS居中一直是我想要整理记录的,拖了好久,今天就顺便整理一下css
是我目前使用最多的一种方式,flex布局也是如今最方便的一种布局,普遍用于pc端和移动端布局
.container{ display: flex; align-items: center; justify-content: center; }
grid布局是一种比flex更增强大的布局,可是目前兼用性并很差,我使用的并很少,但也能实现居中flex
.container { display: grid; align-items: center; justify-content: center; }
传统中比较新的方法,我用的很少,须要水平居中就加上 text-align: center;spa
.container { display: table-cell; vertical-align: middle; text-align: center; }
传统方法,适用于绝对定位code
.container { position: relative; } .child { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
利用vertical-align: middle的特性和中线对齐,用伪元素将内部撑高,须要水平居中就加上 text-align: center。orm
.container { width: 200px; height: 200px; border: 1px solid red; text-align: center; } .container::before { content: ''; display: inline-block; width: 0; height: 100%; vertical-align: middle; }
若是不加固定高度使用padding让上下padding相等就能够实现垂直居中了,须要水平居中就加上 text-align: center,适用于一些较简单的场景get
.container { padding: 10px 40px; text-align: center; }
若是须要固定高度,而后实现垂直居中,能够将高度设置成行高。一样,须要水平居中就加上 text-align: center;同步
.container{ line-height: 50px; text-align:center; height: 50px; }
块级元素,设置固定宽度,左右margin等于auto博客
div{ width: 200px; margin: 0 auto; }
对块级的父级使用,能让内部的匿名行盒(文字)、行内元素(span)、inline-block元素在父亲里水平居中it
.container{ text-align: center; }
个人博客即将同步至腾讯云+社区,邀请你们一同入驻:https://cloud.tencent.com/dev...