CSS 居中的几种方式

简介: CSS 居中的几种方式

水平居中

使用inline-block以及text-align实现。

.container{
    text-align: center;
}
.ele{
    display: inline-block;
}

Demo

使用table实现

这种方法可以不定宽居中。

.container{
        
}
.ele{
    display: table;
    margin: 0px auto;
}

Demo

使用margin: 0 auto实现

这种定位方法需要指定witdh。

.container{

}
.ele{
    width: 100px;
    margin: 0 auto;
}

Demo

使用flex布局实现

.container{
    display: flex;
    justify-content: center;
}

或者

.container{
    display: flex;
}
.ele{
    margin: 0px auto;
}

Demo

绝对定位

.container{
    position: relative;
}
.ele{
    position: absolute;
    left: 50%;
    margin-left: -50px;
    width: 100px;
    height: 100px;
    background-color: red;
}

或者将元素宽度的一般改成transform: translate(-50%),这样不定宽的时候也可以实现居中,但是兼容性不是足够好。

.container{
    position: relative;
}
.ele{
    position: absolute;
    left: 50%;
    transform: translate(-50%);
    width: 100px;
    height: 100px;
    background-color: red;
}

Demo

垂直居中

使用vertical-align

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

注意要设置height或者line-height。

Demo

或者

.container{
    display:inline-block;
    vertical-align: middle;
}

Demo

绝对定位

.container{
    height: 500px;
    position:relative;
}
.ele{
    position: absolute;
    top: 50%;
    height: 50px;
    margin-top: -25px;
}

当然height的一半也可以用

transform:translate(0,-50%);

来替代。

Demo

使用flex布局实现

.container{
    display: flex;
    align-items: center;
}

Demo

水平垂直居中

使用flex布局

利用flex布局的justify-content以及align-items修改弹性盒子纵向以及横向的对其位置,使子元素在纵向以及横向位置都以正中位置对其。

.container{
    display: flex;
    justify-content: center;
    align-items: center;
}

Demo

使用绝对定位

使用绝对定位设置top以及left为50%,然后将宽度以及高度的一半“拉”回来。

.container{
    position: relative;
}
.ele{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
}

Demo

如果宽度高度指定的时候也可以通过设置负的margin来实现。

.container{
    position: relative;
}
.ele{
    position: absolute;
    top: 50%;
    left: 50%;
    height: 100px;
    width: 100px;
    margin-left: -50px;
    margin-top: -50px;
}

利用vertical-align,text-align,inline-block实现

.container{
    display:table-cell;
    vertical-align: middle;
    text-align: center;
}
.ele{
    display: inline-block;
}

Demo

目录
相关文章
|
前端开发 容器
我已经说了5种css居中实现的方式了,面试官竟然说还不够?
这是一篇关于居中对齐方式的总结 开篇之前,先问一下大家都知道几种居中的实现方式? 面试时答出来两三个就不错了,就怕面试官还让你继续说。今天就来总结一下这些居中的方式 使用flex布局设置居中。 使用flex 时也能通过给子项设置margin: auto实现居中。 使用绝对定位的方式实现水平垂直居中。 使用grid设置居中。 使用grid时还能通过给子项设置margin: auto实现居中。 使用tabel-cell实现垂直居中。 还有一种不常用的方法实现垂直居中。 最后还有一种奇葩的方法。容器设置position: relative。孩子设置 top、left、bottom、right都设
133 0
我已经说了5种css居中实现的方式了,面试官竟然说还不够?
|
前端开发
CSS的垂直居中和水平居中总结
CSS的垂直居中和水平居中总结
120 0
|
前端开发
CSS水平居中+垂直居中+水平/垂直居中的方法总结
CSS水平居中+垂直居中+水平/垂直居中的方法总结
185 0
CSS水平居中+垂直居中+水平/垂直居中的方法总结
|
前端开发 容器
CSS布局的三种方式
CSS布局的三种方式:1.绝对定位 2.相对定位 3.浮动
97 0
CSS布局的三种方式
|
前端开发
【前端】【样式】CSS居中的三种方式
【前端】【样式】CSS居中的三种方式
65 1
|
前端开发 UED
CSS盒子模型隐藏的几种方式
CSS盒子模型隐藏的几种方式
142 0
CSS盒子模型隐藏的几种方式
|
前端开发 JavaScript 开发者
CSS 样式加载方式| 学习笔记
快速学习 CSS 样式加载方式。
107 0
CSS 样式加载方式| 学习笔记
|
前端开发 开发者 容器
CSS 居中总结 | 学习笔记
快速学习 CSS 居中总结
98 0
CSS 居中总结 | 学习笔记
|
前端开发
CSS 学习4.四种css导入方式
CSS 学习4.四种css导入方式
CSS 学习4.四种css导入方式