html5已废弃align等对齐属性,对齐完全由css控制:text-align仅作用于行内内容水平对齐;块级元素自身居中需用margin: auto或flexbox;Flexbox中justify-content控主轴、align-items控交叉轴;Grid中place-items仅影响网格项在单元格内的对齐。

html5 本身没有新增专门的“对齐属性”,align 这类全局属性在 HTML5 中已被废弃(如
不再合法)。真正的对齐控制,全部交由 CSS 实现——尤其是 Flexbox 和 Grid 这两个现代布局模型。
用
用 text-align 控制行内内容水平对齐
这是最常被误认为“HTML 对齐”的 CSS 属性,但它只作用于**行内级内容**(如文字、、图片等)在块容器内的水平位置:
-
text-align: left/right/center/justify都有效 - 对 、
等块级元素自身不生效(想居中块自己,得用别的方法)- 对 flex 或 grid 容器的子项也无效——它们有自己的对齐体系
div { text-align: center; /* 让内部的文字、img、span 居中 */ }让块级元素自身居中:用
margin: auto或 Flex想让一个
、在父容器里水平居中?不能靠 HTML 属性,核心就两条路:- 若宽度固定,用
margin: 0 auto(需设置width) - 更通用:父容器设为
display: flex,再用justify-content: center - 注意:
margin: auto对垂直居中无效(除非是 flex 子项或绝对定位)
.container { display: flex; justify-content: center; /* 水平居中子项 */ align-items: center; /* 垂直居中子项(如果高度已知或有约束) */ }Flexbox 的对齐属性必须成对理解
Flex 布局里,“对齐”分两个轴:主轴(
flex-direction决定)和交叉轴。别只记名字,要看它管哪一轴:立即学习“前端免费学习笔记(深入)”;
-
justify-content→ 控制**主轴**上子项的分布(如flex-row时是水平) -
align-items→ 控制**交叉轴**上子项的对齐(如flex-row时是垂直) -
align-self→ 单个子项覆盖父级的align-items,仅对该子项生效 - 常见陷阱:
align-items: center在父容器没设高度时可能“看不出效果”,因为容器高度由内容撑开
Grid 布局中的对齐更精细,但别滥用
place-itemsGrid 支持比 Flex 更细粒度的对齐控制,尤其适合二维布局。但新手容易把
place-items当万能居中开关:-
place-items: center=justify-items: center+align-items: center - 它只影响**网格项(grid items)在各自单元格内的对齐**,不是整个网格容器的居中
- 想让整个网格容器在页面中居中?还是得回到父容器的 flex 或
margin: auto - 真正需要二维对齐(比如某一项跨多行/列后还要居中),才该用
justify-self/align-self
最容易被忽略的一点:所有这些 CSS 对齐能力,都依赖于**正确的文档流和盒模型理解**。写个
Float: left或position: absolute,很多对齐规则就自动失效了——不是属性没用,是元素已脱离常规布局上下文。