元素水平垂直居中的方法

元素水平垂直居中的方法

不知道元素宽高大小仍能实现水平垂直居中的方法

  • 利用定位+margin:auto
  • 利用定位+transform
  • flex弹性布局
  • grid网格布局

利用定位+margin:auto

css 复制代码
<style>
.father{
	width:500px;
	height:300px;
	border:1px solid #0a3b98;
	position: relative;
}
.son{
	width:100px;
	height:40px;
	background: #f0a238;
	position: absolute;
	top:0;
	left:0;
	right:0;
	bottom:0;
	margin:auto;
}
</style>
html 复制代码
</style>
<div class="father">
	<div class="son"></div>
</div>

利用定位+transform

css 复制代码
<style>
.father {
	position: relative;
	width: 200px;
	height: 200px;
	background: skyblue;
}
.son {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 100px;
	height: 100px;
	background: red;
}
</style>
html 复制代码
<div class="father">
	<div class="son"></div>
</div>

flex弹性布局

css 复制代码
<style>
.father {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 200px;
	height: 200px;
	background: skyblue;
}
.son {
	width: 100px;
	height: 100px;
	background: red;
}
</style>
html 复制代码
<div class="father">
	<div class="son"></div>
</div>

grid网格布局

css 复制代码
<style>
.father {
	display: grid;
	align-items:center;
	justify-content: center;
	width: 200px;
	height: 200px;
	background: skyblue;
}
.son {
	width: 10px;
	height: 10px;
	border: 1px solid red
}
</style>
html 复制代码
<div class="father">
	<div class="son"></div>
</div>

内联元素居中布局

水平居中

  • 行内元素可设置:text-align: center
  • flex布局设置父元素:display: flex; justify-content: center

垂直居中

  • 单行⽂本父元素确认⾼度:height === line-height
  • 多行⽂本父元素确认⾼度:display: table-cell; vertical-align: middle

块级元素居中布局

水平居中

  • 定宽: margin: 0 auto
  • 绝对定位+left:50%+margin:负自身⼀半

垂直居中

  • position: absolute设置left、top、margin-left、margin-top(定高)
  • display: table-cell
  • transform: translate(x, y)
  • flex(不定高,不定宽)
  • grid(不定高,不定宽),兼容性相对⽐较差
相关推荐
恋猫de小郭4 分钟前
Flutter PC 多窗口最新进展,底层原生窗口句柄支持已合并
android·前端·flutter
摩西蒙9 分钟前
软考计算机组成原理学习笔记-1
笔记·学习·软件工程
中屹指纹浏览器15 分钟前
2026指纹浏览器性能优化实战:多环境并发与资源占用管控技术
经验分享·笔记
LIO17 分钟前
Vue3 + Vite + Pinia + TypeScript 项目完整搭建与实战指南
前端·vue.js
kilito_0118 分钟前
vue官网例子 讲解2
前端·javascript·vue.js
蜡台19 分钟前
Vue实现动态路由
前端·javascript·vue.js·router
xiao阿娜的妙妙屋124 分钟前
当AI Agent开始自我进化,我们普通人应该怎么办?
前端
sudo_jin26 分钟前
从“谁调用指向谁”到“手写Bind源码”,彻底搞懂JavaScript的this机制
前端·javascript
小蜜蜂dry26 分钟前
nestjs实战-登录、鉴权(二)
前端·后端·nestjs
全栈王校长26 分钟前
Nest 文件上传 - 就是增强版的 el-upload
前端·后端·nestjs