text-align合法取值包括基础值left、right、center、justify、inherit,以及CSS逻辑属性新增的start、end、match-parent;其中inherit不支持IE全版本,start/end需配合direction使用且旧版Safari兼容性有限。
text-align 是 CSS1 就支持的原生属性,所有现代浏览器(包括 IE6+)都支持以下基础值:left、right、center、justify 和 inherit。其中 inherit 在所有版本 IE 中均不支持。
从 CSS Logical Properties 开始,还新增了逻辑值:start、end(推荐用于多语言/响应式场景),以及 match-parent(较少用)。但注意:start/end 在旧版 Safari(≤12.1)和部分安卓 WebView 中兼容性有限。
两端对齐不是简单拉伸——它依赖**足够长的文本行 + 合理容器宽度**才能触发间距调整。常见失效原因:
left 渲染最后一行letter-spacing 或 word-spacing,会覆盖 justify 的自动间距调节能力text-justify: inter-ideograph(仅 IE/Edge 支持)width: auto 在 display: inline-block 下可能收缩),导致无“两端”可对齐实测建议:给元素加 width: 300px + border 边框,肉眼观察是否真正贴边。
立即学习“前端免费学习笔记(深入)”;
text-align **只影响块级容器内的行内内容**,不是让容器自己居中。典型误解:
div { text-align: center; } → 让 div 里的文字、span、img 居中,但 div 本身仍在父容器左上角margin: 0 auto(需有明确 width)或 Flex/Griddisplay: block 子元素(如另一个 div)无效,除非子元素是 inline-block 或
inline
也就是说:它管“内容怎么排”,不管“盒子怎么摆”。
如果你的网站要支持阿拉伯语(RTL)、希伯来语或中文混排,硬写 text-align: left 会导致 RTL 文本反向错乱。此时应优先用逻辑值:
text-align: start → 在 LTR(如中文、英文)下等价于 left,在 RTL(如阿拉伯文)下自动变为 right
text-align: end → 反之,适合作为右对齐签名、日期等固定位置内容direction: rtl 或 dir="rtl" HTML 属性才能正确触发逻辑行为真实项目中,只要用了 dir 属性,start/end 就比物理值更可靠;否则,老老实实用 left/right 更稳妥。
真正难的不是记住取值,而是理解 text-align 本质是「行框对齐点控制」——它不改变盒模型,也不影响布局流,只悄悄调整每一行里字符与空格的分布。一旦容器、文本、书写模式三者关系没理清,就容易反复调试却看不出效果。