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

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

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

方法一:绝对定位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 {
    /* 不需要设置宽高 */
}

欢迎指正!

相关推荐
布局呆星2 分钟前
Vue3+TS封装Axios请求全攻略
前端·javascript·ajax·typescript
小小前端_我自坚强7 分钟前
React 核心技术深度笔记
前端·javascript·react.js
Cobyte10 分钟前
9.响应式系统演进:effectScope 的作用与实现原理(Vue3.2)
前端·javascript·vue.js
techdashen16 分钟前
Cloudflare HTML 解析器的十年演化史(二)
前端·html
ZC跨境爬虫21 分钟前
Apple官网复刻第二阶段day_1:(导航栏模块化重构+工业化可复用UI落地)
前端·javascript·css·ui·重构
梅梅绵绵冰31 分钟前
若依框架-智慧社区项目
前端·javascript·vue.js
花归去44 分钟前
a-table 冻结列导致边框
前端·css·css3
kuuailetianzi44 分钟前
Vue 3图片全屏预览组件:打造专业级图像浏览体验
前端·javascript·microsoft
晓得迷路了1 小时前
栗子前端技术周刊第 126 期 - Rspack 2.0、TypeScript 7.0 Beta、Git 2.54...
前端·javascript·ai编程
nLYA SCOL1 小时前
MySQL数据的增删改查(一)
android·javascript·mysql