首页 专题 文章 代码 归档

【元素居中】CSS实现元素居中的方法

1. 前言

面试题,总结!

2. 传统做法

1、定位

子绝父相

设置left、top、right、bottom,然后通过移位,margin,达到垂直居中

父相对定位

.wrapper {
    height: 100px;
    width: 100px;
    background-color: #0f0;
    position: relative;
}

子元素,绝对然后left、top、right、bottom设置为0,margin=auto,就可:

.box {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 30px;
    height: 30px;
    background-color: #f00;
}

利用transform的css3属性,然后top、left都设置为50%,

.box {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    background-color: #f00;
}

3. 弹性盒模型

只需父元素display:flex然后

justify-content、justify-content都设置为center即可

.wrapper {
    height: 100px;
    width: 100px;
    background-color: #0f0;
    display: flex;
    justify-content: center;
    align-items: center;
}

还有一种是grid布局

父元素display:grid;

子元素:margin:auto;

.wrapper {
    height: 100px;
    width: 100px;
    background-color: #0f0;
    display: grid;
}

.box {
    margin: auto;
    width: 30px;
    height: 30px;
    background-color: #f00;
}

4. 简单总结

水平居中

  • 行内元素: text-align: center
  • 块级元素: margin: 0 auto
  • position:absolute +left:50%+ transform:translateX(-50%)
  • display:flex + justify-content: center

垂直居中

  • 设置line-height 等于height
  • position:absolute +top:50%+ transform:translateY(-50%)
  • display:flex + align-items: center
  • display:table+display:table-cell + vertical-align: middle;
此文阅读完毕,您可以:分享
二维码图片 扫描关注我们哟