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

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











