【八股】未知宽高元素水平垂直居中的三种方法

在笔试/面试中,经常出现的一个问题就是:如何实现元素水平垂直居中?

本文会直接使用代码,介绍未知宽高元素水平垂直居中的三种方法:

方法一:绝对定位absolute

css 复制代码
//绝对定位,将元素的左右位置设置为50%,平移自身高度的50%
//兼容性好、广泛使用
.absolute-center-container {
    position: relative;  /* 父容器设置为相对定位 */
    height: 100%;        /* 父容器高度 */
}
.centered {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* 不需要设置宽高 */
}

方法二:flex布局

css 复制代码
//设置父级为弹性盒子--简洁但是ie 11以上支持
.flex-container {
    display: flex;
    justify-content: center;   /* 水平居中 */
    align-items: center;       /* 垂直居中 */
    height: 100%;              /* 父容器高度 */
}
.centered {
    /* 不需要设置宽高 */
}

方法三:grid布局

css 复制代码
//设置父级为网格元素--简洁,ie10以上支持
.grid-container {
    display: grid;
    place-items: center;  /* 相当于同时设置 justify-items 和 align-items */
    height: 100%;          /* 父容器高度 */
}
.centered {
    /* 不需要设置宽高 */
}

欢迎指正!

相关推荐
Alice-YUE几秒前
【JS高频八股】什么是闭包?
开发语言·javascript·笔记·学习
D_C_tyu13 分钟前
JavaScript | 数独游戏核心算法实现
javascript·算法·游戏
海天鹰16 分钟前
EXIF-JS
javascript
清汤饺子29 分钟前
【译】我的 AI 进阶之路:从怀疑到深度整合
前端·javascript·后端
@菜菜_达37 分钟前
Vue生命周期
前端·javascript·vue.js
每天吃饭的羊39 分钟前
UMD和IIfe
开发语言·前端·javascript
gCode Teacher 格码致知1 小时前
Javascript提高:自定义的占位符替换-由Deepseek产生
开发语言·javascript·ecmascript
桔筐1 小时前
Vue3 v-model 双向绑定导致循环触发的坑
前端·javascript·vue.js
路光.2 小时前
ReferenceError:Can‘t find variable:structureClone
前端·javascript·html·vue2
我这一生如履薄冰~2 小时前
浏览器多窗口同开一页面,数据同步更新(纯前端方案)
前端·javascript