text-justify需配合text-align: justify生效,仅对中文两端对齐有效;必须设lang="zh",现代浏览器支持有限;最后一行需text-align-last: justify;短段落等场景应避免使用。

text-justify 必须和 text-align: justify 一起用
单独写 text-justify: inter-character 没效果。这个属性只在 text-align 值为 justify 时才被浏览器识别并启用。它本身不控制对齐方向,只决定“怎么拉伸”——是按字、按词、还是按字符簇来分配间距。
中文两端对齐优先选 inter-character
对简体中文内容,text-justify: inter-character 是目前最实用的值。它强制浏览器在每个汉字之间插入可伸缩间距,从而让整行填满容器宽度。但要注意:
- 必须配合
lang="zh"(写在或父<div> 上),否则 Safari 和部分旧版 Chrome 可能忽略该声明 <li>Firefox 从 110+、Chrome 120+、Safari 17.4+ 才稳定支持;iOS Safari 16.x 及更早版本基本不认</li> <li>标点符号(如句号、顿号)也会被拉伸,可能造成视觉断裂,尤其在小字号下明显</li> <h3>distribute-all-lines 不是标准 CSS 属性</h3> <p>你在某些博客或老项目里看到的 <code>text-justify: distribute-all-lines并非 W3C 标准,而是旧版 IE/Edge 的私有值(已废弃)。现代浏览器完全不支持。误用会导致:- CSS 验证失败
- 该声明被静默丢弃,退回到默认的
auto行为(即几乎无拉伸) - 调试时找不到生效原因,容易误判为样式没加载
真正可用的值只有:
auto、inter-character、inter-word、distribute(仅部分浏览器支持,且对中文无效)。最后一行对齐得靠 text-align-last
text-align: justify默认不处理最后一行,它永远左对齐。要让它也撑满,必须显式加text-align-last: justify。但注意:- 这个属性在 Firefox 中支持良好,在 Safari 中需搭配
-webkit-text-align-last: justify - 如果段落只有一行,
text-align-last会直接覆盖text-align,整段变成两端对齐——此时字距可能异常大,建议用@supports控制条件启用 - 不要依赖
text-justify来解决最后一行问题,它管不了这个
真正难的不是写对这几个属性,而是判断什么时候不该用 justify:短段落、标题、带图标/内联元素的行、小屏幕窄容器——这些场景下强行两端对齐只会让文字呼吸困难。保真排版,往往得放弃纯 CSS 方案,改用 JS 插入零宽空格或服务端预处理。











