text-align是控制水平对齐最直接的CSS属性,但仅作用于块级容器内的行内内容,不能使块级元素自身居中;align属性在HTML5中已废弃,W3C明确要求用CSS替代。

text-align 是控制水平对齐最直接的属性,但仅靠它无法解决所有排版问题。多数人一开始会误以为加个 align="center" 就能居中,结果发现只在老浏览器或某些内联元素上生效,现代标准下必须用 CSS。
为什么 align 属性在 <p> 上失效了
HTML5 已废弃 align 这类呈现性属性(如 <p align="center">),浏览器虽仍兼容,但 W3C 不再推荐,且在严格模式(!DOCTYPE html)下行为不可靠。
- Chrome/Firefox/Safari 对
align的支持越来越弱,尤其嵌套在 Flex 或 Grid 容器中时完全忽略 -
<p>是块级元素,其对齐效果取决于父容器的text-align,而不是自身属性 - 若父容器是
<div>且未设宽度,text-align: center只居中文本,不居中整个<p>块
text-align 的实际作用范围与限制
text-align 只影响**行内内容**(文字、<span>、<img> 等)在其块级父容器中的**水平位置**,它不会让块级元素本身居中——这是初学者最常混淆的点。
- 对
<h1>、<p>、<div>这些块级标签,text-align控制的是它们内部的文字对齐方式 - 想让整个
<p>在页面中水平居中?得用margin: 0 auto+ 显式width,或用 Flex 布局 -
text-align: justify在中文排版中效果有限,因中文无空格分词,浏览器难以合理拉伸
竖排文字必须配 writing-mode 和 line-height
单纯设 text-align: center 对竖排无效——竖排时“水平”和“垂直”的概念翻转了。writing-mode: vertical-rl 才是起点,之后 text-align 控制的是**列对齐**(即每列文字在容器中的左右位置),而 line-height 控制的是**行间距**(即上下字之间的距离)。
立即学习“前端免费学习笔记(深入)”;
- 必须给容器设固定
height,否则竖排内容可能溢出或高度塌陷 -
line-height推荐用无单位值(如1.6),避免像素值在缩放时失真 - 旧版 IE 需补
-ms-writing-mode: tb-rl,Safari 旧版需-webkit-writing-mode - 注意:竖排后
text-align: right实际表现为“顶对齐”,left是“底对齐”,别凭直觉猜
真正难的不是写对一行 text-align: center,而是判断当前要居中的对象究竟是“文本内容”还是“块容器本身”——前者用 text-align,后者得切到布局层(Flex/Grid/width+margin)。这个边界一旦模糊,后续所有样式都会连锁偏移。



















