HTMLのコメント、改行、スペース
HTMLのコメント、改行、スペース:表示結果をその場で確認 | We.Inc
HTMLとCSSのコメントの書き方、改行や連続スペースの入れ方、スペースが詰まるのを防ぐ方法を解説します。すべての例は編集でき、表示結果を横で確認できます。
HTMLのコメント、改行、スペース
HTMLのコメントは<!-- note -->のように書きます。ブラウザーは記号の間にあるものをすべて無視します。テキスト内で強制的に改行するには<br>を、新しい段落を始めるには<p>を使います。ブラウザーは連続したスペースを1つにまとめるため、固定のスペースを1つ入れるには を、入力したとおりの間隔を保つにはCSSのwhite-spaceプロパティを使います。
早見表
- HTMLにメモを残す
- <!-- note -->
- ページのソースには見えるが、画面には表示されない
- CSSにメモを残す
- CSSで使える唯一のコメント形式
- 新しいテキストのまとまりを作る
- スタイルで調整できる余白が付く
- 詰まりも折り返しもしないスペースを1つ入れる
-
- 数値と単位の間
- すべてのスペースと改行を保つ
- white-space: pre-wrap
- 長い行は折り返される
このページの各ケースでは、コードとブラウザーが実際に描画する結果を並べて示しています。どの例も編集すると結果が更新されるので、自分のページを直す前に、なぜスペースが消えたのか、なぜ改行が効かなかったのかを確認できます。
- 下のセクションから、自分の問題に合うケースを探します。コメント、改行、スペース、white-spaceプロパティに分かれています。
- 左側のコードを編集します。右側の結果は、スクリプトを無効にしたサンドボックスのフレーム内で実際にブラウザーが描画したものです。
- 目的どおりに動くものを自分のページにコピーします。
- それでも間隔がおかしい場合は、ページ末尾近くの10のよくある間違いを確認してください。スペースが詰まる問題のほとんどはそのどれかです。
- コメントには、マークアップが何かではなく、なぜそうなっているかを書きましょう。nav要素の上に<!-- nav -->と書いても何の情報にもなりません。
- 本番のHTMLに社内向けのメモが入ったコメントがあれば削除しましょう。誰でもページのソース表示で読めてしまいます。
- <br>タグを重ねる前に、CSSのmarginやgapを使いましょう。CSSの余白は画面サイズごとに変えられますが、改行の並びは変えられません。
- はインデントに使うのではなく、10 kmやMr. Khanのように、1行に収めるべき値の間に入れましょう。
よくある質問
HTMLの複数行をコメントアウトするには?
最初の行の前に<!--を、最後の行の後に-->を置きます。その間にあるものは、何行あってもすべて無視されます。コメントの中に別のコメントを入れ子にはできません。最初の-->でコメント全体が終わり、残りがテキストとして表示されてしまうからです。
HTMLで連続したスペースが無視されるのはなぜ?
HTMLは通常のテキスト内のスペース、タブ、改行の連なりを1つのスペースとして扱います。そのおかげで、ページに影響を与えずにソースを自由にインデントできます。複数のスペースを残すには、 エンティティを使うか、CSSで要素にwhite-space: pre-wrapを指定します。
<br>、<br/>、<br />のどれが正しい?
HTMLではどれも動作します。<br>は素のHTMLの書き方です。スラッシュは任意でHTMLパーサーには無視されますが、ReactのJSXでは自己終了形式の<br />が必須です。
CSSで//コメントは使えますか?
使えません。CSSが理解するのは/* */だけです。//で始まる行はコメントではなく、パーサーは壊れたコードとして扱い、その後の宣言やルール全体を捨ててしまいます。このバグが一見ランダムに見えるのはそのためです。
条件付きコメントは今でも使えますか?
使えません。<!--[if IE]>のような条件付きコメントは古いバージョンのInternet Explorerだけが読み取るもので、Internet Explorer 10で廃止されました。現在のブラウザーはすべて通常のコメントとして扱うため、中のマークアップは表示されません。
改行が適切な場面
- <br>を使うべきなのは、改行そのものが内容の一部である場所です。住所の各行、詩の一節、署名欄などです。こうした場所では、読み手が手でテキストを書き写すときにも改行を残すはずです。
- それ以外の場所では、改行はレイアウトであり、レイアウトはCSSで扱うべきです。<br><br>で区切った2つの段落は、デスクトップでは余白を広く、スマートフォンでは狭くしたくなるまでは問題なく見えます。marginを付けた2つの<p>要素なら、どのブレークポイントでも変更でき、スクリーンリーダーも別々の段落として読み上げます。
スペースが詰まる理由と、4つの回避方法
- 通常のテキストに対するブラウザーの初期値はwhite-space: normalで、連続する空白をすべて1つのスペースにまとめ、必要な場所で行を折り返します。ソースのインデントが画面に表示されないのはこのためです。
- スペースを残すには、エンティティ( と、より幅の広い や )、<pre>要素、またはwhite-spaceの値pre、pre-wrap、pre-line、break-spacesのいずれかを使います。エンティティは1〜2か所の固定の隙間に向いており、CSSの値はコード、詩、ユーザーが入力したメモなど、テキストのまとまり全体に向いています。
コメントは公開されている
- HTMLのコメントはすべての訪問者に送られます。ページには表示されませんが、ソース、保存されたコピー、検索エンジンがダウンロードする内容には含まれています。パスワード、社内のアドレス、顧客名、セキュリティホールに関するTODOメモをコメントに残してはいけません。
- 多くのビルドツールはコメントを自動で削除できます。Viteなどのバンドラーは、ミニファイ時にJavaScriptとCSSのコメントを取り除きます。indexファイル内のHTMLコメントを消したい場合は、HTMLミニファイの処理が必要になることがあります。
HTMLのコメント
コメントは<!--で始まり、-->で終わります。要素の間に置くことも、ブロック全体を囲んでテスト中に無効化することもできます。
1行コメントと複数行コメント
描画されるのは2つの段落だけです。段落全体を囲むものも含め、コメントは画面に何も残しません。
コメントを入れ子にできない理由
最初の-->で外側のコメントが早く閉じてしまうため、残りのテキストと最後の-->がページに表示されます。
古い条件付きコメントは今では何もしない
これを読み取るのはInternet Explorer 9以前だけです。現在のブラウザーは警告文を完全に無視するので、この古いテクニックは安全に削除できます。
改行:<br>、<p>、CSSのmargin
使い分け
- <br>
- 1つのテキストのまとまり内での改行
- 住所、詩、歌詞
- CSS margin or gap
- ブロック間の余白
- 画面サイズごとに変わるレイアウトの余白
<br>を使った住所
改行は住所の一部なので、ここでは<br>が正しい選択です。
<br>タグの重ね書きと、marginを付けた段落の比較
見た目は似ていますが、2つ目は本物の段落になっており、余白を1か所で変更できます。
スペースを追加する:エンティティ
スペースのエンティティ
-
- U+00A0 ノーブレークスペース
- 通常のスペース幅で、折り返さない
- 10 kg, page 3
-  
- U+2002 enスペース
- 0.5em
- リストやメニューの隙間
-  
- U+2003 emスペース
- 1em
- 1行だけのインデント
-  
- U+2009 細いスペース
- 狭い
- 一部の表記での数字の桁区切り
数値と単位を離さない
幅の狭いボックスでは、1行目は50とkmの間で折り返されることがあります。ノーブレークスペースを使った2組目は離れません。
詰まったスペースとエンティティの比較
入力した5つのスペースは1つになります。エンティティはそれぞれの幅を保ちます。
CSSのwhite-spaceでスペースと改行を保つ
white-spaceの値
pre、pre-wrap、pre-lineを並べて比較
同じテキストを3つのボックスに入れています。preはすべてを保ちますがはみ出し、pre-wrapはすべてを保って折り返し、pre-lineは改行だけを保ちます。
フォームに入力されたテキストを表示する
textareaから受け取ったメモは、pre-lineで表示すれば改行が保たれ、テキストがHTMLとして解釈される心配もありません。
CSSのコメントと、//でCSSが壊れる理由
コメントアウトした色は無視され、緑色が適用されます。
//が次のルールに与える影響
//の行はセレクターの一部として読まれるため、.warningのルール全体が捨てられ、テキストは黒のままになります。
10のよくある間違い
間違いと修正方法
- 単語の間にスペースを複数入力する
- 1つにまとめられる
- or white-space: pre-wrap
- 段落の間隔に<br><br>を使う
- 画面サイズに合わせて余白を調整できない
- <p>要素を分けてmarginを付ける
- コメントを入れ子にする
- 内側の-->以降のテキストがページに漏れる
- コメントを1つにするか、ブロックを削除する
- CSSで//コメントを書く
- 次のルールが無視される
- /* */を使う
- JavaScriptファイルに<!-- -->を書く
- 構文エラーや予期しない動作
- JSでは//か/* */を使う
- HTMLコメントに内部向けのメモを残す
- 誰でもソース表示で読める
- 削除するか、ビルド時にコメントを取り除く
- を並べてテキストをインデントする
- 小さな画面で崩れる
- padding-left or text-indent
- コメント内にハイフンを2つ続けて書く
- 古いバリデーターで警告され、読みにくい
- コメント本文で--を避ける
- JSXでスラッシュなしの<br>を書く
- JSXコンパイラーがエラーを出す
- Reactでは<br />と書く
- textareaの改行がそのまま表示されると思い込む
- スペースにまとめられる
- 出力にwhite-space: pre-lineを指定する
無料で始める · クレジットカード不要
関連: ガイド|Webマーケティングと集客を学ぶ
製品
ご利用いただける方
機能
リソース
会社情報
サイトマップを見る