水平,垂直居中

1. 水平对齐(左右居中)

父元素写:

复制代码
text-align: center;     /* 水平居中 */
text-align: left;       /* 左对齐 */
text-align: right;      /* 右对齐 */

适用:

  • spanaimginputbutton行内 / 行内块元素

注意:text-align 是加在父元素上,不是直接加在行内元素自己身上。


2. 垂直对齐(上下对齐)

直接给行内元素本身写:

复制代码
vertical-align: middle;    /* 垂直居中 */
vertical-align: top;       /* 顶部对齐 */
vertical-align: bottom;    /* 底部对齐 */
vertical-align: baseline;  /* 基线对齐(默认) */

适用:

  • 行内元素、行内块元素、图片、按钮、单行文字对齐

一、Flex 布局(现代项目首选)

复制代码
.parent {
  display: flex;
  justify-content: center; /* 水平居中 */
  align-items: center;     /* 垂直居中 */
  width: 300px;
  height: 300px;
  border: 1px solid #ccc;
}
.son {
  width: 100px;
  height: 100px;
  background: #666;
}

优点:不依赖子元素宽高、代码简洁、响应式友好(IE10+)。

二、Grid 布局(最简洁)

复制代码
.parent {
  display: grid;
  place-items: center; /* 一行搞定水平+垂直 */
  width: 300px;
  height: 300px;
  border: 1px solid #ccc;
}
.son {
  width: 100px;
  height: 100px;
  background: #666;
}

优点:代码最少,二维布局能力强。

三、绝对定位 + transform(不定宽高通用)

复制代码
.parent {
  position: relative;
  width: 300px;
  height: 300px;
  border: 1px solid #ccc;
}
.son {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* 回退自身宽高一半 */
  width: 100px;
  height: 100px;
  background: #666;
}

原理:top/left:50%让子元素左上角居中,transform再回退自身尺寸一半。

四、绝对定位 + margin:auto(固定宽高)

复制代码
.parent {
  position: relative;
  width: 300px;
  height: 300px;
  border: 1px solid #ccc;
}
.son {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto; /* 自动分配剩余空间 */
  width: 100px;
  height: 100px;
  background: #666;
}

限制:子元素必须固定宽高(IE8+)

相关推荐
adminwolf7 分钟前
自研企业微信SCRM系统源码独立部署(Golang+Vue.js)
前端·vue.js·企业微信
小短腿的代码世界8 分钟前
QwtPolar 与实时示波器级渲染优化:雷达图到示波器曲线的极限性能调优
前端·qt·架构·交互
早起傻一天~G15 分钟前
vue2+element-UI上传文件
javascript·vue.js·ui
机器视觉知识推荐、就业指导24 分钟前
npm 安装/运行报错及解决方案
前端·npm·node.js
摇滚侠26 分钟前
12 移动端 WEB 前端 WEB 开发 HTML5 + CSS3 + 移动 WEB
前端·css3·html5
ez52fF0k828 分钟前
.NET11云原生CI/CD在云原生应用持续集成与交付安全加固
前端·c#·交互
独泪了无痕31 分钟前
pnpm依赖管理:从零开始的实践手册
前端·npm·node.js
张风捷特烈32 分钟前
状态管理大乱斗#08 | MobX 源码评析 - 透明魔法
android·前端·flutter
mCell33 分钟前
HTML:AI 时代的通用表达层
前端·html·aigc
mobº37 分钟前
Vue3 +TypeScript 项目总结
前端·javascript·typescript