text-justify对中文无效,因浏览器两端对齐依赖单词空格拉伸,而中文无自然词间间隙,导致视觉上仍呈左对齐;它非Bootstrap缺陷,而是CSS规范与中文字体渲染机制决定。
text-justify 在 bootstrap 5 中没有被“替代”,它依然存在,但根本没用——尤其对中文。
为什么 text-justify 对中文无效
浏览器实现两端对齐(justification)依赖单词间的空格作为拉伸锚点。text-justify 只会让英文、法文等带空格分词的语言在行尾自动调整词间距;中文没有自然词间空隙,浏览器几乎不调整汉字间距,视觉上和 text-start 完全一样。
- 你加了
text-justify,段落看起来还是左对齐 - 检查 computed styles 会发现
text-align: justify确实生效了,但 layout 没变化 - 不是 Bootstrap 的 bug,是 CSS 规范和中文字体渲染机制决定的
别用 text-justify 强撑中文两端对齐
强行让中文“两端对齐”需要非常规手段,text-justify 不是入口:
- 用
word-break: break-all或overflow-wrap: break-word配合固定宽度容器,至少能控制换行位置,但不是真正两端对齐 - 服务端预处理:插入零宽空格(
)或全角空格,成本高、语义差、SEO 不友好 - CSS
text-align-last: justify仅作用于末行,且兼容性差(Safari 旧版不支持)
中文排版更现实的对齐选择
放弃“两端对齐”幻想,按场景选真正可控的方式:
- 标题/短文本居中 →
text-center - 表单标签右对齐(配合输入框左对齐)→
text-end+col-form-label组合 - 卡片头部混合布局(文字居中 + 右侧按钮)→ 改用
d-flex justify-content-between,别碰text-* - 表格内数值右对齐(金额、编号)→
text-end直接加在上,安全有效 真正难的不是怎么写 class,而是意识到:中文网页里,“两端对齐”不是缺失功能,而是不该存在的需求。











