text-align: justify 对中文无效是因为浏览器只在单词分隔符间插入空白,而中文无空格;需配合 text-justify: inter-character(Chromium支持)和 text-align-last: justify 实现真正两端对齐。

text-align: justify 本身就能让文字两端对齐,但中文段落常“没反应”,不是你写错了,是浏览器默认不给汉字之间加空隙。
text-align: justify 为什么对中文看起来没用
浏览器实现 text-align: justify 时,只在 Unicode 定义的「单词分隔符」(比如空格、连字符)之间插入弹性空白。中文没有空格分隔,所以几乎不拉伸——整段文字就像没加这个样式一样靠左堆着。
常见错误现象包括:
• <p style="text-align: justify;">你好世界</p> 渲染后和 left 完全一样
• 混排段落里英文正常撑开,中文部分挤成一团
• Safari 旧版本直接忽略该声明
- 必须确保容器有明确宽度(
width或max-width),否则“两端”无从谈起 - 单行文本永远不生效——
justify只在有多行、有换行断点时才起作用 - 字体也会影响:某些 Web 字体或等宽字体可能完全禁用字距拉伸逻辑
现代浏览器要加 text-justify: inter-character 才有效
text-justify: inter-character 是专门解决中文问题的属性:它强制在每个字符(包括汉字、标点)之间插入可伸缩空白,而不是只等空格出现。
立即学习“前端免费学习笔记(深入)”;
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
当前兼容性:
• Chrome / Edge 120+ ✅ 支持
• Firefox 128 ❌ 忽略该声明,退回到基础 justify 行为
• Safari ❌ 完全不支持
- 务必配合
lang="zh"写在或父容器上,否则部分浏览器不触发语义化断行逻辑 - 推荐写法:
text-align: justify; text-justify: inter-character;—— Chromium 用户立刻见效,其他用户无副作用 - 不要把它当全局样式用;它不是兜底方案,只是针对特定段落的增强
最后一行怎么也拉伸对齐
text-align: justify 规范定义中,最后一行默认左对齐。想让它也撑满,唯一可靠方式是加 text-align-last: justify。
- 该属性只在
text-align值为justify时生效 - 对单行列表项(如
<li>简介</li>)同样有效,前提是内容足够长或容器宽度受限促发换行 - Safari ≤15.4 不支持,若需兼容,可搭配
max-width: max-content强制折行,再用text-align-last控制末行
别硬扛兼容性,优先判断场景是否真需要两端对齐
真正高保真排版(如电子书、PDF 导出、长文阅读页),纯 CSS 的 justify 始终不稳定。很多所谓“完美两端对齐”方案,背后其实是 JS 动态切分 + 插入零宽空格()或服务端预处理。
容易被忽略的一点:
• 短段落(比如三五行以内)强行 justify 很可能造成字间距过大,反而损害可读性
• 标点符号(句号、顿号、逗号)在 letter-spacing 降级方案下会异常突出,视觉断裂明显
• hyphens: auto 对中文支持极弱,除非配合专业分词服务,否则基本无效


















