改行

テキストを次の行に折り返す処理。CSS の word-break や overflow-wrap で制御する。

改行とは、テキストを現在の行から次の行へ折り返す処理です。Web 開発においては、HTML の <br> タグによる明示的な改行と、ブラウザが行幅に応じて自動的に行う折り返し (ソフトラップ) の 2 種類があります。CSS の word-breakoverflow-wrapwhite-space プロパティを組み合わせることで、自動改行の挙動を細かく制御できます。

日本語テキストは単語間にスペースがないため、原則としてほぼ任意の文字位置で改行できます。一方、英語テキストは単語の途中で改行しないのが基本ルールです。CSS の word-break: break-all を指定すると英語でも任意の位置で改行されますが、可読性が低下するため注意が必要です。overflow-wrap: break-word は、コンテナからはみ出す長い単語に限って途中で改行する、より穏やかな制御を提供します。日本語組版ルールの書籍で改行の禁則処理を学べます。

禁則処理は日本語組版における重要な改行ルールです。行頭に句読点 (。、) や閉じ括弧 (」)) が来ないようにする「行頭禁則」、行末に開き括弧 (「() が来ないようにする「行末禁則」があります。CSS の line-break プロパティで禁則の厳密さを autoloosenormalstrict の 4 段階で制御できます。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 文字として扱われるため、同じ内容のテキストでも改行コードの種類によって文字数が変わります。文字数制限のあるフォームやメッセージでは、改行コードの扱いを事前に確認しておくことが重要です。Web フロントエンド実践の書籍ではテキスト表示の制御方法が詳しく解説されています。