ホームページやブログを作るとき、「文章を改行したいのに、うまくいかない…」と悩んだことはありませんか?
実は、HTMLでの改行は「普通の文章」とは全く違うルールがあります。
よくある失敗例:
<!-- これでは改行されない -->
<p>最初の行
2行目
3行目</p>
HTMLでは、文章を改行するには特別なタグを使う必要があります。
この記事でわかること:
- HTMLでの改行の基本的な仕組み
- 用途別の最適な改行方法
- よくある間違いとその解決策
- SEOを考慮した正しい書き方
- CSSを使った高度な改行テクニック
この記事を読めば、HTMLの改行で迷うことはもうありません!さっそく見ていきましょう。
HTMLの改行が特殊な理由【基礎知識編】

なぜHTMLでは改行が表示されないの?
HTMLの基本ルール:
- 空白文字(スペース、改行、タブ)は1つの空白として扱われる
- 連続する空白は無視される
- 見た目の制御はHTMLタグで行う
実際の例で確認
入力されたHTMLコード:
<p>こんにちは
今日は いい天気ですね</p>
実際の表示結果:
こんにちは 今日は いい天気ですね
なぜこうなるの?
- 連続する改行は1つの空白に変換
- 複数のスペースは1つの空白に変換
- HTML要素の前後の空白は無視
HTMLとテキストファイルの違い
項目 | テキストファイル | HTMLファイル |
---|---|---|
改行の扱い | そのまま表示 | 空白1つに変換 |
スペース | そのまま表示 | 連続は1つに変換 |
見た目制御 | 文字のみ | タグで制御 |
この理解が、HTMLでの改行マスターの第一歩です!
HTMLで改行する基本の方法
1. brタグで強制改行【最も基本的な方法】
brタグの基本的な使い方
<br>
タグは「line break」の略で、その位置で強制的に改行を行います。
基本的な書き方:
<p>こんにちは。<br>今日はいい天気ですね。</p>
表示結果:
こんにちは。
今日はいい天気ですね。
brタグの特徴
重要な特徴:
- 終了タグが不要(
<br>
だけでOK) - インライン要素(文章の途中に使える)
- 任意の場所で改行可能
HTML5での正しい書き方
HTML5(現在の標準)では:
<!-- 正しい書き方 -->
<br>
<!-- 古い書き方(非推奨) -->
<br />
<br/>
2. 複数行の文章にはpタグを使おう【推奨方法】
pタグの基本的な考え方
<p>
タグは「paragraph」の略で、文章の段落を表します。
基本的な使い方:
<p>これは最初の段落です。</p>
<p>これが次の段落です。</p>
<p>これが3つ目の段落です。</p>
表示結果:
これは最初の段落です。
これが次の段落です。
これが3つ目の段落です。
pタグの自動的な余白
ブラウザの標準設定:
/* ブラウザのデフォルトスタイル */
p {
margin-top: 1em;
margin-bottom: 1em;
}
これにより:
- 段落の前後に自動的に余白が追加
- 統一感のあるレイアウトを実現
- 読みやすい文章構造を提供
3. 詩や歌詞にはpreタグ【特殊な用途】
preタグの特徴
<pre>
タグは「preformatted text」の略で、入力したままの形式で表示します。
使用例:
<pre>
春はあけぼの
夏は夜
秋は夕暮れ
冬はつとめて
</pre>
表示結果:
春はあけぼの
夏は夜
秋は夕暮れ
冬はつとめて
preタグの使用場面
適切な使用場面:
- 詩や歌詞の表示
- コードの表示
- ASCII アート
- 表形式のデータ(簡易的な場合)
用途別の改行方法の使い分け

状況別の最適な選択
用途 | 推奨方法 | 理由 |
---|---|---|
通常の文章 | <p> | 意味的に正しい、SEOに良い |
住所の表示 | <br> | 1つの情報内での改行 |
詩・歌詞 | <pre> | 改行位置が重要 |
リスト | <ul> or <ol> | 構造的に正しい |
見出し後の本文 | <h1> + <p> | 意味的に正しい |
具体的な使い分け例
1. 通常の文章(ブログ記事など)
推奨方法:
<h2>今日の出来事</h2>
<p>今日は素晴らしい天気でした。</p>
<p>公園で友達と会って、一緒にお弁当を食べました。</p>
<p>午後は読書をして、リラックスした時間を過ごしました。</p>
2. 住所や連絡先の表示
推奨方法:
<address>
株式会社サンプル<br>
〒100-0001<br>
東京都千代田区千代田1-1-1<br>
TEL: 03-1234-5678
</address>
3. 詩や歌詞の表示
推奨方法:
<pre>
桜咲く
春の日に
君と歩いた
この道を
</pre>
4. リスト形式の情報
推奨方法:
<h3>今日の予定</h3>
<ul>
<li>9:00 会議</li>
<li>11:00 資料作成</li>
<li>14:00 打ち合わせ</li>
<li>16:00 メールチェック</li>
</ul>
よくある間違いと注意点【トラブル回避編】
1. 改行を連続で入れすぎる【最も多い間違い】
間違った例
❌ やってはいけない方法:
<p>最初の段落です。</p>
<br><br><br><br>
<p>次の段落です。</p>
なぜダメなのか:
- 意味のない空白を作っている
- レスポンシブデザインに対応できない
- SEO的に不適切
- 保守性が悪い
正しい解決方法
✅ 正しい方法:
<p>最初の段落です。</p>
<p class="large-margin">次の段落です。</p>
CSS:
.large-margin {
margin-top: 60px; /* 4つの<br>相当の余白 */
}
2. 段落の区切りにbrタグを使う
間違った例
❌ 間違った使い方:
<p>
最初の段落です。<br><br>
次の段落です。<br><br>
3つ目の段落です。
</p>
正しい方法
✅ 正しい使い方:
<p>最初の段落です。</p>
<p>次の段落です。</p>
<p>3つ目の段落です。</p>
3. レイアウト調整でbrタグを乱用
間違った例
❌ レイアウト目的での使用:
<div>
<h2>見出し</h2>
<br><br>
<p>本文がここに入ります。</p>
</div>
正しい方法
✅ CSSでの調整:
<div>
<h2>見出し</h2>
<p>本文がここに入ります。</p>
</div>
CSS:
h2 {
margin-bottom: 30px;
}
SEOを考慮した改行の書き方
検索エンジンが評価する構造
良い例:意味的に正しい構造
✅ SEOに良い構造:
<article>
<h1>記事のタイトル</h1>
<p>導入文がここに入ります。</p>
<h2>最初の見出し</h2>
<p>最初の段落です。</p>
<p>2つ目の段落です。</p>
<h2>2つ目の見出し</h2>
<p>3つ目の段落です。</p>
</article>
悪い例:意味のない構造
❌ SEOに悪い構造:
<div>
記事のタイトル<br><br>
導入文がここに入ります。<br><br><br>
最初の見出し<br><br>
最初の段落です。<br>
2つ目の段落です。<br><br><br>
2つ目の見出し<br><br>
3つ目の段落です。
</div>
構造化データとの関係
検索エンジンが理解しやすい構造:
<article>
<header>
<h1>記事タイトル</h1>
<time datetime="2024-01-01">2024年1月1日</time>
</header>
<main>
<section>
<h2>セクション1</h2>
<p>内容1</p>
<p>内容2</p>
</section>
<section>
<h2>セクション2</h2>
<p>内容3</p>
</section>
</main>
</article>
CSSで改行や余白を調整する【応用編】

1. 基本的な余白調整
margin を使った余白制御
基本的な使い方:
<p class="normal-margin">通常の段落です。</p>
<p class="large-margin">大きな余白の段落です。</p>
<p class="small-margin">小さな余白の段落です。</p>
CSS:
.normal-margin {
margin-bottom: 16px;
}
.large-margin {
margin-bottom: 32px;
}
.small-margin {
margin-bottom: 8px;
}
2. 行間の調整
line-height を使った行間制御
使用例:
<p class="tight-line">行間が狭い文章です。</p>
<p class="normal-line">通常の行間の文章です。</p>
<p class="loose-line">行間が広い文章です。</p>
CSS:
.tight-line {
line-height: 1.2;
}
.normal-line {
line-height: 1.6;
}
.loose-line {
line-height: 2.0;
}
3. レスポンシブな余白設定
メディアクエリを使った調整
レスポンシブCSS:
.responsive-paragraph {
margin-bottom: 16px;
line-height: 1.6;
}
/* タブレット以上 */
@media (min-width: 768px) {
.responsive-paragraph {
margin-bottom: 24px;
line-height: 1.8;
}
}
/* デスクトップ */
@media (min-width: 1024px) {
.responsive-paragraph {
margin-bottom: 32px;
line-height: 2.0;
}
}
4. 高度な改行制御
word-break と overflow-wrap
長い単語の改行制御:
<p class="break-word">thisisaverylongwordthatdoesnotfitonasingleline</p>
<p class="break-all">this-is-a-long-hyphenated-word-that-needs-breaking</p>
CSS:
.break-word {
word-break: break-word;
/* 単語の境界で改行 */
}
.break-all {
word-break: break-all;
/* 任意の文字で改行 */
}
実践的な使用例【プロジェクト別】
1. ブログ記事の構造
<article class="blog-post">
<header>
<h1>記事タイトル</h1>
<time datetime="2024-01-01">2024年1月1日</time>
</header>
<div class="content">
<p class="lead">導入文です。読者の関心を引く内容を書きます。</p>
<h2>最初の見出し</h2>
<p>最初の段落です。</p>
<p>2つ目の段落です。</p>
<h2>2つ目の見出し</h2>
<p>3つ目の段落です。</p>
<h3>小見出し</h3>
<p>詳細な説明です。</p>
</div>
</article>
対応するCSS:
.blog-post {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.blog-post h1 {
margin-bottom: 10px;
}
.blog-post time {
color: #666;
font-size: 0.9em;
}
.blog-post .lead {
font-size: 1.2em;
color: #333;
margin-bottom: 30px;
}
.blog-post h2 {
margin-top: 40px;
margin-bottom: 20px;
}
.blog-post h3 {
margin-top: 30px;
margin-bottom: 15px;
}
.blog-post p {
margin-bottom: 16px;
line-height: 1.8;
}
2. 会社情報ページ
<section class="company-info">
<h2>会社概要</h2>
<div class="info-item">
<h3>会社名</h3>
<p>株式会社サンプル</p>
</div>
<div class="info-item">
<h3>所在地</h3>
<address>
〒100-0001<br>
東京都千代田区千代田1-1-1<br>
サンプルビル5階
</address>
</div>
<div class="info-item">
<h3>連絡先</h3>
<p>
TEL: 03-1234-5678<br>
FAX: 03-1234-5679<br>
Email: info@example.com
</p>
</div>
</section>
3. 製品説明ページ
<section class="product-description">
<h2>製品の特徴</h2>
<div class="feature">
<h3>高性能</h3>
<p>最新の技術を使用した高性能な製品です。</p>
<p>従来品と比較して、処理速度が50%向上しています。</p>
</div>
<div class="feature">
<h3>使いやすさ</h3>
<p>直感的な操作で、初心者でも簡単に使用できます。</p>
<p>詳細なマニュアルとサポート体制も充実しています。</p>
</div>
<div class="specifications">
<h3>仕様</h3>
<dl>
<dt>サイズ</dt>
<dd>幅300mm × 高さ200mm × 奥行き150mm</dd>
<dt>重量</dt>
<dd>約2.5kg</dd>
<dt>電源</dt>
<dd>AC100V 50/60Hz</dd>
</dl>
</div>
</section>
トラブルシューティング
問題1:改行が効かない
原因と解決方法
原因:
- CSSで
white-space: nowrap;
が設定されている - 親要素の幅が狭すぎる
解決方法:
/* 改行を有効にする */
.allow-wrap {
white-space: normal;
word-wrap: break-word;
}
問題2:余白が思うように効かない
原因と解決方法
原因:
- マージンの相殺が起こっている
- ボックスモデルの理解不足
解決方法:
/* マージンの相殺を避ける */
.no-margin-collapse {
padding-bottom: 20px;
margin-bottom: 0;
}
/* または */
.clear-margins {
margin: 0;
padding: 20px 0;
}
問題3:モバイルで改行位置がおかしい
原因と解決方法
原因:
- レスポンシブデザインに対応していない
- フォントサイズが固定されている
解決方法:
/* レスポンシブな改行設定 */
.responsive-text {
font-size: 16px;
line-height: 1.6;
word-break: break-word;
}
@media (max-width: 480px) {
.responsive-text {
font-size: 14px;
line-height: 1.8;
}
}
まとめ:正しい改行で美しいWebページを作ろう
HTMLでの改行は、適切な方法を選ぶことで、見た目も構造も美しいWebページを作れます。
重要なポイントのおさらい
改行方法の使い分け:
- 通常の文章:
<p>
タグで段落を分ける - 強制改行:
<br>
タグを適切に使用 - デザイン調整:CSSで余白や行間を制御
- 構造化:見出しタグで階層を明確に
避けるべき間違い:
<br>
タグの連続使用- 意味のない空白の作成
- レイアウト目的での不適切なタグ使用
SEOへの配慮:
- 意味的に正しい構造
- 検索エンジンが理解しやすい階層
- ユーザーが読みやすい文章構造
コメント