水平,垂直居中

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+)

相关推荐
用户059540174462 小时前
把AI对话记忆存储测试从手工改成Playwright+pytest,覆盖率从20%提到96%,回归时间缩短90%
前端·css
kyriewen2 小时前
别再这样写TypeScript了——Code Review中最常见的8个反模式
前端·javascript·typescript
名字还没想好☜2 小时前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
午安~婉2 小时前
GitHub Token/ GitHub Stats统计显示图异常
前端·github·vercel·github token
码云之上3 小时前
AI Agent 工程化总览篇:从 Prompt 到 Harness
前端·人工智能
2501_926978333 小时前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
IT_陈寒3 小时前
Vite静态资源引用这个坑我踩得有点疼
前端·人工智能·后端
程序员黑豆4 小时前
鸿蒙应用开发:AttributeModifier 使用教程
前端·harmonyos
codeniu4 小时前
TRAE Work 实战 | 从"有个想法"到线上Demo,我全程只靠对话就完成了
前端·trae
妙码生花4 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(五十):增加管理员角色组管理
前端·后端·ai编程