読み込み中...

HTMLにおける自動改行を完全ガイド!5ステップで簡単マスター

HTML自動改行のイメージ図 HTML
この記事は約7分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、HTMLでの改行の動作と制御方法を簡単に使いこなすことができるようになります。 まずはじめに、HTMLでのテキスト改行の仕組みとその制御方法を学びましょう。

●HTMLでの改行の仕組み

HTMLでは、テキストは要素の幅に合わせて自動的に改行されます。これはHTMLの基本的な動作であり、特別な設定をしなくても機能します。 テキストが要素の幅を超えると、ブラウザは自動的に適切な位置で改行を行います。 これにより、ウェブページ上での文章の見やすさが向上し、読者にとっても分かりやすくなります。

○改行の制御方法

HTMLの自動改行はデフォルトで機能しますが、CSSを使用して改行の動作をより細かく制御することができます。 下記に、基本的な制御方法を示すサンプルコードを記します。

<!DOCTYPE html>
<html>
<head>
<style>
  p {
    width: 300px;
    /* 長い単語(スペースのない文字列)が要素の幅を超える場合に改行を許可 */
    overflow-wrap: break-word;
  }
</style>
</head>
<body>

<p>ここに文章を入力してください。通常の文章は要素の幅に合わせて自動的に改行されます。ただしとても長い単語(supercalifragilisticexpialidocious)などは制御が必要な場合があります。</p>

</body>
</html>

このサンプルコードでは、<p>タグ内の文章が300pxの幅に制限され、通常のテキストは自動的に改行されます。また、overflow-wrap: break-word;によって、スペースのない長い単語も必要に応じて途中で改行されるようになります。

○特定の状況での改行制御

通常の自動改行が期待通りに機能しない特定の状況があります。例えば

  • 長い単語や URL がコンテナを突き抜ける
  • 連続した英数字の文字列が改行されない
  • 改行やスペースを保持したい場合

下記に、これらの状況に対処するサンプルコードを示します。

<!DOCTYPE html>
<html>
<head>
<style>
  p {
    width: 300px;
    /* 長い単語を改行するための設定(overflow-wrapは標準プロパティ) */
    overflow-wrap: break-word;
    /* 改行やスペースを保持する設定 */
    white-space: pre-wrap;
  }
</style>
</head>
<body>

<p>ここに文章を入力してください。
複数行の
テキストや    複数のスペースも
保持されるようになります。また、https://verylongurlthatmightbreakoutofcontainer.com のような長いURLも適切に改行されます。</p>

</body>
</html>

このサンプルコードでは、overflow-wrap: break-word;で長い単語やURLが改行されるようにし、white-space: pre-wrap;で元のテキストの改行やスペースが保持されるようにしています。これらのプロパティを組み合わせることで、さまざまな状況に対応できます。

●改行制御の注意点

改行を制御する際には、いくつかの注意点があります。下記に、それらの注意点を考慮したサンプルコードを記します。

<!DOCTYPE html>
<html>
<head>
<style>
  p {
    width: 300px;
    overflow-wrap: break-word;
    /* 単語の途中で改行される場合にハイフンを追加(一部のブラウザのみサポート) */
    hyphens: auto;
  }
</style>
</head>
<body>

<p lang="en">This is an example text that demonstrates how hyphenation works when words need to be broken across lines in English language content.</p>

</body>
</html>

このサンプルコードでは、hyphens: auto;を追加して、単語の途中で改行される場合にハイフンを自動的に挿入するようにしています。ただし、hyphensプロパティは言語設定(lang属性)が必要で、一部のブラウザでのみサポートされているため、使用する際には注意が必要です。

●テキストレイアウトの調整

テキストの改行とは別に、テキストの配置や整列を調整することもできます。これは改行の制御とは異なる概念ですが、一緒に使うことでテキストの見た目を整えることができます。

<!DOCTYPE html>
<html>
<head>
<style>
  p {
    width: 300px;
    overflow-wrap: break-word;
    /* テキストを両端揃えにする設定(改行制御ではなくテキスト配置の設定) */
    text-align: justify;
  }
</style>
</head>
<body>

<p>この文章は両端揃えになっています。両端揃えとは、文章の左右の端がきれいに揃うように単語間のスペースが調整されるレイアウト設定です。日本語の場合は効果が限定的な場合もあります。</p>

</body>
</html>

このサンプルコードでは、text-align: justify;によってテキストが両端揃えになるよう設定しています。これはテキストの改行制御ではなく、レイアウトの調整であることに注意してください。言語や文章の内容によっては読みにくくなる場合もあるため、使用する際には注意が必要です。

●応用例とサンプルコード

改行制御とテキストレイアウトの応用例として、テーブル内のテキスト処理について示します。

<!DOCTYPE html>
<html>
<head>
<style>
  table {
    width: 100%;
    border-collapse: collapse;
  }
  th, td {
    width: 33.33%; /* 3列で合計100%になるように調整 */
    padding: 8px;
    text-align: left;
    border: 1px solid #ddd;
    overflow-wrap: break-word;
  }
</style>
</head>
<body>

<table>
  <tr>
    <th>見出し1</th>
    <th>見出し2</th>
    <th>見出し3</th>
  </tr>
  <tr>
    <td>ここに文章を入力してください。文章が指定した幅を超えると自動的に改行されます。</td>
    <td>長い単語(supercalifragilisticexpialidocious)も適切に改行処理されます。</td>
    <td>https://verylongurlthatmightbreakoutofcontainer.com のような長いURLも改行されます。</td>
  </tr>
</table>

</body>
</html>

このサンプルコードでは、テーブル内のセルの幅をそれぞれ33.33%に設定し、合計で100%になるようにしています。また、overflow-wrap: break-word;thおよびtdに適用することで、テーブル内の長い単語やURLも適切に改行されるようになります。

まとめ

以上で、HTMLでの改行の仕組みと制御方法について説明しました。HTMLではテキストは基本的に自動改行されますが、特定の状況では追加のCSSプロパティが必要となります。改行の制御は文章が見やすくなるだけでなく、デザインやレイアウトの調整にも役立ちます。上記のサンプルコードを参考に、自分のサイトやアプリケーションに適切な改行制御を適用してみてください。