HTMLの基本構造はDOCTYPE・html・head・bodyの4要素で成り立ちます。それぞれの役割と書く理由、lang属性やcharset・viewportの意味、header/main/article/footerの使い分けを解説し、コピーして使えるテンプレートも紹介します。
この記事でわかること
- HTMLの基本構造はDOCTYPE・html・head・bodyの4つで成り立つこと
- 4要素それぞれの役割と書く理由(互換モード回避・文字化け防止など)
lang属性・charset・viewportなどheadに置く要素の意味- HTML5のセマンティックタグ(header/main/article/footer)の使い分け
- コピーして使える基本構造テンプレートと、よくある構造ミスの直し方
参考: MDN Web Docs「HTML の基本」(参照)/W3C「HTML Standard」
HTMLそのものをまだ触っていない方は、先に全体像をつかむと理解が早くなります。
HTMLとは?初心者向けにわかりやすく解説 から読むのがおすすめです。
結論を先に書きます
HTMLの基本構造は、どんなページでも共通です。覚えるべき要素は4つだけ。DOCTYPE宣言・htmlタグ・headタグ・bodyタグです。
この4つの「入れ子の順番」と「役割の違い」さえ押さえれば、いきなり複雑なページを見ても迷いません。逆にここが曖昧だと、レイアウト崩れや文字化けの原因がつかめなくなります。
- 基本構造は DOCTYPE → html →(head・body) の入れ子で固定
- headは画面に出ない情報、bodyは画面に出る中身という役割分担
- 日本語サイトは
lang="ja"とcharset="UTF-8"が事実上の必須 - headとbodyは並列。入れ子にすると壊れる
それぞれの要素を、書く理由とあわせて順に見ていきます。
HTMLの基本構造とは
どんなに複雑なWebページも、土台になる骨組みは同じです。この骨組みを理解することが、Web制作の第一歩になります。
HTMLファイルは、次の4つの要素で構成されます。まずは全体像を眺めてみてください。
<!DOCTYPE html> <html lang="ja"> <head> <!-- メタ情報 --> </head> <body> <!-- 表示コンテンツ --> </body> </html>
この4要素には、それぞれ明確な役割があります。下の表で全体を整理してから、個別に深掘りしていきましょう。
| 要素 | 役割 | 画面表示 |
|---|---|---|
| HTML5文書だと宣言する | しない |
| 文書全体のルート・言語指定 | しない |
| ブラウザ向けのメタ情報 | しない |
| ユーザーに見せるコンテンツ | する |
ポイントは、画面に表示されるのは の中身だけという点です。残り3つは「ブラウザへの指示書」だと考えるとスッキリします。
DOCTYPE宣言の役割
最初に書くのが、DOCTYPE宣言です。
<!DOCTYPE html>
何を宣言しているか
これは「このファイルはHTML5で書かれています」とブラウザに伝える宣言文です。タグではなく宣言なので、終了タグはありません。
必ず書く理由
DOCTYPE宣言がないと、ブラウザが「互換モード(Quirks Mode)」で動きます。互換モードでは、CSSのレイアウトが意図どおりに表示されないなどの不具合が起きやすくなります。
そのため、すべてのHTMLファイルの1行目に必ず書くのが基本です。
<!DOCTYPE html>の大文字・小文字はどちらでも動作する- 慣習としては大文字で書くことが多い
htmlタグとlang属性の役割
DOCTYPE宣言のすぐ下に置くのが、 タグです。
<html lang="ja"> ... </html>
htmlタグは文書全体のルート
は、HTML文書全体を囲むルート(root=根)要素です。head・bodyを含むすべての内容は、このタグの中に書きます。
lang属性で言語を伝える
lang="ja" は言語コードの指定です。代表的な値は次のとおりです。
| 値 | 言語 |
|---|---|
ja | 日本語 |
en | 英語 |
zh | 中国語 |
lang属性は地味ですが、次の3点で効いてきます。
- スクリーンリーダー(読み上げツール)が正しい言語で読み上げる
- 検索エンジンがページの対象言語を認識しやすくなる
- ブラウザの自動翻訳が正確に動作する
日本語サイトでは lang="ja" を設定しておきましょう。
headタグの役割と書く要素
次は です。ここはユーザーには見えませんが、Web制作では非常に重要なエリアになります。
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="ページの説明文"> <title>ページタイトル | サイト名</title> <link rel="stylesheet" href="style.css"> </head>
headは「画面に出ない情報」のエリア
には、ブラウザや検索エンジンに伝える情報を書きます。head内の内容は画面に表示されません。
headに書く主な要素
headに置く代表的な要素を、役割とあわせて整理します。
| 要素 | 役割 |
|---|---|
| 文字コードの指定。日本語の文字化けを防ぐ |
| スマホ表示の最適化。なければ縮小表示になる |
| タブ・検索結果に出るタイトル。SEOに直結 |
| 検索結果の説明文。クリック率に影響 |
| 外部CSSファイルの読み込み |
補足を3点だけ。charset は head のできるだけ先頭に書きます。title はキーワードを含めた30〜35文字が目安です。description は80〜90文字が目安で、直接の順位要因ではないものの、クリック率(CTR)に影響します。
CSSの役割や書き方をまだ知らない方は、CSSとは?書き方の基本・HTMLとの違いをわかりやすく解説 もあわせて読むと、 の意味がつかみやすくなります。
bodyタグとセマンティック構造
最後が です。読者が実際に目にするのは、ここに書いた中身だけです。
<body> <header> <h1>サイト名</h1> <nav>...</nav> </header> <main> <article> <h2>記事タイトル</h2> <p>本文テキスト</p> </article> </main> <footer> <p>© 2026 サイト名</p> </footer> </body>
bodyは「画面に出る中身」のエリア
には、実際に表示されるすべての内容を書きます。テキスト・画像・リンク・フォームなど、ユーザーが見るものはすべてbody内です。
body内のセマンティックタグ
HTML5以降は、ページ内の役割に応じたセマンティックタグを使うことがすすめられています。意味のあるタグで囲むと、検索エンジンや支援技術が構造を理解しやすくなります。
| タグ | 役割 |
|---|---|
| ページ上部(ロゴ・ナビゲーション) |
| ナビゲーションリンク |
| メインコンテンツ(1ページに1つ) |
| 独立したコンテンツ(記事・投稿) |
| テーマでまとまったセクション |
| 補足情報・サイドバー |
| ページ下部(コピーライト・サイトマップ) |
これらのタグの中で使う見出しや段落、リンクなどの個別タグは、HTMLタグ一覧 にまとめています。
コピペで使える基本構造テンプレート
ここまでの要素をまとめた、実用テンプレートです。コピーしてそのまま使えます。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="ここにページの説明文を書く(80〜90文字)"> <title>ページタイトル | サイト名</title> <link rel="stylesheet" href="style.css"> </head> <body>
<header> <div class="header-inner"> <a href="https://example.com/" class="logo">サイト名</a> <nav> <ul> <li><a href="https://example.com/about/">サービスについて</a></li> <li><a href="https://example.com/blog/">ブログ</a></li> <li><a href="https://example.com/contact/">お問い合わせ</a></li> </ul> </nav> </div> </header>
<main> <article> <h1>ページのメインタイトル</h1> <p>ここに本文を書きます。</p> </article> </main>
<footer> <p>© 2026 サイト名. All rights reserved.</p> </footer>
</body> </html>
リンクの書き方を詳しく知りたい場合は aタグの使い方、表組みは tableタグの書き方 を参考にしてください。
よくある構造の間違いと直し方
最後に、初学者がつまずきやすい構造ミスを2つ紹介します。
bodyの外にコンテンツを書く
の外に書いた内容は、正しく扱われません。表示されるべき中身は、必ずbody内に入れます。
<!-- × --> <html> <head>...</head> <body>...</body> <p>これはbodyの外</p> <!-- 無効 --> </html>
<!-- 〇 --> <body> <p>コンテンツはすべてbody内に</p> </body>
headとbodyを入れ子にする
headとbodyは並列の関係です。一方をもう一方の中に入れてはいけません。
<!-- × --> <head> <body>...</body> <!-- bodyをheadの中に入れるのはNG --> </head>
<!-- 〇 headとbodyは並列 --> <html> <head>...</head> <body>...</body> </html>
よくある質問
HTMLの基本構造について、初学者からよく受ける質問をまとめました。
Q1. DOCTYPE宣言は省略しても表示されますか
省略しても画面には表示されます。ただしブラウザが互換モードで動くため、CSSのレイアウトが意図どおりに出ない不具合が起きやすくなります。1行目に必ず書く前提で覚えておきましょう。
Q2. lang属性を書かないとどうなりますか
エラーにはなりません。ただし読み上げツールの言語判定や、ブラウザ翻訳・検索エンジンの言語認識が不正確になりやすくなります。日本語サイトなら lang="ja" を設定しておくのが無難です。
Q3. headとbodyの違いがわかりません
シンプルに「画面に出るか出ないか」で分けると整理できます。headはブラウザ向けの情報(文字コード・タイトル・CSS読み込み)で画面に出ません。bodyはユーザーに見せる中身で、ここだけが画面に表示されます。
Q4. charsetはUTF-8以外でもいいですか
特別な事情がなければ UTF-8 を使います。日本語を含む多言語を正しく扱え、現在のWeb標準として広く採用されています。古い文字コードを指定すると文字化けの原因になります。
Q5. 次は何を学べばいいですか
基本構造を覚えたら、body内で使う個別タグの使い方に進むのがおすすめです。HTMLタグ一覧 でよく使うタグを把握し、CSSとは で見た目の付け方を学ぶと、ページを形にできるようになります。
まとめ
HTMLの基本構造は、次の4要素で成り立っています。
<!DOCTYPE html>:HTML5文書の宣言。1行目に必須<html lang="ja">:文書全体のルート・言語指定<head>:ブラウザ向けのメタ情報(title・charset・viewport・CSS)。画面に出ない<body>:画面に表示されるすべてのコンテンツ- headとbodyは並列。入れ子にしない
この骨組みを覚えたら、次は各タグの具体的な使い方を HTMLタグ一覧 で確認してみましょう。あわせて aタグ・tableタグ・imgタグ といった頻出タグを押さえると、実際にページを組み立てられるようになります。
関連記事
免責事項
※本記事はWeb制作・HTMLに関する公開情報をもとにした整理です。仕様は更新される場合があるため、最新の挙動はMDN Web DocsやW3Cの公式ドキュメントをあわせてご確認ください。

