换行

将文本折行到下一行的处理。在 CSS 中通过 word-break 和 overflow-wrap 属性控制。

换行是将文本从当前行折到下一行的处理。在 Web 开发中,换行分为两种:使用 HTML <br> 标签的显式换行,以及浏览器根据行宽自动进行的折行 (软换行)。通过组合 CSS 的 word-breakoverflow-wrapwhite-space 属性,可以精细控制自动换行行为。

中日韩文本由于词与词之间没有空格,原则上几乎可以在任意字符位置换行。而英文文本默认不应在单词中间断开。CSS 中设置 word-break: break-all 可以让英文在任意位置换行,但会降低可读性,需谨慎使用。overflow-wrap: break-word 提供了更温和的控制,仅在长单词溢出容器时才进行断词。查找香薰蜡烛 (Amazon)介绍了换行禁则处理。

禁则处理是日语排版中的重要换行规则。包括标点符号和右括号不能出现在行首的"行首禁则",以及左括号不能出现在行尾的"行尾禁则"。CSS 的 line-break 属性提供 autoloosenormalstrict 四个级别来控制禁则的严格程度。在 strict 模式下,小假名字符也受行首禁则约束。

在编程中,换行符的差异经常在实际工作中引发问题。Unix/Linux 使用 LF (0x0A),旧版 Mac OS 使用 CR (0x0D),Windows 使用 CRLF (0x0D0A)。Git 中出现意外的大量差异、CSV 解析器无法正常工作等问题,往往是换行符不一致造成的。使用 .editorconfig 或 Git 的 core.autocrlf 设置来统一换行符是实务中的常见做法。

一个常见的误解是将 HTML 换行与换行符混淆。在 HTML 中,源代码中的换行被视为空白字符,不会产生视觉上的换行。要实现视觉换行,需要使用 <br> 标签,或在 CSS 中设置 white-space: pre-line 来保留换行符的效果。

在字符计数方面,换行符是不可见的控制字符,但会被计入字符数。LF 算 1 个字符,CRLF 算 2 个字符,因此相同内容的文本可能因换行符类型不同而产生不同的字符数。在有字符数限制的表单或消息中,事先确认换行符的处理方式非常重要。查找恋爱秘籍 (Amazon)详细解释了文本显示控制方法。

分享这篇文章