2026.09.28 公開 2026.10.18 更新

HTMLとは|タグ・属性・基本構造をやさしく解説

HTMLとは|タグ・属性・基本構造をやさしく解説

この記事で学べること

  • HTMLが何を担当する言語なのかを、CSS・JavaScriptと区別して説明できる
  • タグと属性のルールを守って、表示崩れのないHTMLを書ける
  • ページのひな形を作り、見出しやリストで中身を書いてブラウザで確認できる

HTMLとは、Webページの中身と構造を作る、Web制作で最初に学ぶ言語です。この記事では実務で使う最低限の書き方に絞り、ページのひな形を自分で書けるところまで解説します。

ハコマル

ハコマル

難しい言葉は少しずつ覚えれば大丈夫だよ!手を動かしながら読んでみてね

HTMLの全体像

各STEPで学ぶことは次のとおりです。前のSTEPが次のSTEPの土台になるため、初めての人はSTEP1から順に読んでください。

STEP 学ぶこと 使うタグ・書き方
STEP1
役割を知る
HTML・CSS・JSの違いを知る HTML・CSS・JavaScript
STEP2
書き方のルールを覚える
タグを正しく書く 開始タグ・終了タグ・入れ子・空要素
画像やリンクを入れる src・alt・hrefなどの属性
記号をそのまま表示する <などの文字参照
コードにメモを残す <!-- -->
STEP3
骨組みを作る
ページのひな形を作る <!doctype html>・<head>・<body>
ブラウザで表示を確かめる index.htmlとして保存して開く
STEP4
設定を加える
スマホ表示に対応する <meta name="viewport">
検索用の説明文を書く <meta name="description">
CSS・JSを読み込む <link>・<script>
STEP5
本文を書く
見出しを付ける <h1>〜<h6>
箇条書きを作る <ul>・<ol>・<li>
要素をまとめる・領域を分ける <div>・<span>・<header>など

すべてをまとめたひな形は、完成形のコードに載せています。

ハコマル

ハコマル

ひな形はコピーして使い回せるよ!まずは全体をざっと眺めてみてね

STEP1:HTMLの役割を知る

まずは、HTMLがどんな言語で、Webページの中で何を担当しているのかを押さえます。役割を先に知っておくと、CSSやJavaScriptとの区別がつきやすくなります。

HTMLとは

HTMLは「HyperText Markup Language」の略で、Webページの内容と構造をブラウザに伝えるための言語です。Webを構成する技術の中で、最も基本となるものです。

名前に含まれる2つの言葉は、それぞれ次の意味を持っています。

言葉 意味 例
ハイパーテキスト リンクで別のページとつながる仕組み リンクをクリックして別のページへ移動する
マークアップ 文章の一部をタグで囲み、意味を付けること <p>で囲むと段落、<h1>で囲むと最上位の見出しになる

HTML・CSS・JavaScriptの役割分担

Webページは、主に3つの技術を組み合わせて作られています。HTMLは中身の担当で、見た目はCSSに任せる設計になっています。

技術 担当 具体例
HTML 内容と構造 見出し・段落・画像など、何が書いてあるかを決める
CSS 見た目・表現 色・フォント・レイアウトを整える
JavaScript 機能・振る舞い 動きや、クリックなどの操作に反応する処理を加える

HTMLファイルの形式

HTMLファイルは、タグで構造を付けたプレーンテキストです。拡張子は「.html」が基本で、「.htm」が使われることもあります。

サイトのトップページには「index.html」という名前がよく使われます。サブフォルダごとにindex.htmlを置くのも一般的です。作ったファイルはWebサーバーから配信され、どのブラウザでも表示できます。

ハコマル

ハコマル

HTMLは「中身」、CSSは「見た目」と覚えておくと区別しやすいよ!

出典:MDN Web Docs「HTML: ハイパーテキストマークアップ言語」

STEP2:タグと属性の書き方を覚える

タグを正しく書く

HTMLでは、「開始タグ+内容+終了タグ」のまとまりを要素と呼びます。例えば段落なら、次のように書きます。

<p>うちの猫は不機嫌です。</p>
部分 書き方 役割
開始タグ <p> 要素の始まりを示す
内容 うちの猫は不機嫌です。 タグで囲まれた中身
終了タグ </p> 要素名の前にスラッシュを付けて、要素の終わりを示す

終了タグの書き忘れは、初心者によくあるミスです。表示崩れの原因になるので、開始タグを書いたら終了タグもセットで書きましょう。

なお、タグ名は大文字・小文字を区別しません。ただし一貫性のため、小文字で書くのが慣習です。

タグを入れ子にする

要素の中には、別の要素を入れられます。これを入れ子(ネスト)と呼びます。守るルールは「後から開いたタグを先に閉じる」ことです。

<p>うちの猫は<strong>とても</strong>不機嫌です。</p>  <!-- 正しい -->
<p>うちの猫は<strong>とても不機嫌です。</p></strong>  <!-- 間違い:タグが交差している -->

タグどうしを交差させると、ブラウザは意図を推測して表示します。その結果、予期しない表示になることがあります。

終了タグのない「空要素」

内容を持たず、1つのタグだけで書く要素もあります。これを空要素と呼び、改行や画像など、何かを挿入・埋め込むときに使います。

<br>    <!-- 改行する -->
<br />  <!-- 上と同じ意味 -->

<br>と<br />は、どちらも正しい書き方です。末尾のスラッシュは書き方のスタイルの違いで、必須ではありません。動作は変わらないので、サイト内ではどちらかに揃えておくと読みやすくなります。

<script>は空要素に見えますが、空要素ではありません。必ず終了タグ</script>まで書きましょう。

属性で情報を追加する

属性は、開始タグの中に書く追加情報です。要素の設定や動作を調整するために使います。

属性の書き方のルール

  1. 要素名と属性の間に半角スペースを入れる(属性が複数ある場合も半角スペースで区切る)
  2. 属性名の後に「=」を書く
  3. 属性値を引用符で囲む

実務でよく使うのが、画像を表示するimg要素と、リンクを作るa要素です。

<img src="cat.jpg" alt="眠っている猫" width="300" height="200">  <!-- 画像を表示する -->
<a href="demo.html">リンク</a>                                 <!-- リンクを作る -->
属性 意味
src 画像のURL(必須)
alt 画像を見られない人向けの説明文
width / height 画像の幅・高さ(ピクセル)
href リンク先のURL

意味を持つ画像には、必ずalt属性を付けましょう。画像を見られない人にも、内容が伝わるようになります。

属性値は必ず引用符で囲む

仕様上は、空白や特定の記号を含まない値なら引用符を省略できます。ただし、空白を含む値で省略すると、意図しない解釈になります。

<a href="demo.html" title=The Mozilla homepage>リンク</a>  <!-- 「The」だけが値になる -->

この例では、「Mozilla」と「homepage」が別の属性として扱われてしまいます。ミスを防ぐため、属性値は常に引用符で囲みましょう。

引用符は、二重引用符(”)と単一引用符(’)のどちらでも使えます。ただし、1つの値の中で混ぜるとエラーになります。

状況 書き方 例
通常 どちらかの引用符に統一する class="note"
値に一方の引用符を含めたい もう一方の引用符で囲む title="It's fun"
値に同じ種類の引用符を含めたい 文字参照を使う title="&quot;注目&quot;"

記号をそのまま表示する

「<」「>」などの記号は、HTMLの構文に使われる特殊文字です。文字として表示したいときは、文字参照という書き方に置き換えます。

表示したい文字 書き方
< &lt;
> &gt;
“ &quot;
‘ &apos;
& &amp;

例えば、文章の中で「<p>」という文字を見せたい場合は次のように書きます。

<p>HTML では、&lt;p&gt; 要素で段落を定義します。</p>

文字参照は、最後のセミコロンまで書く必要があります。省略すると、誤解釈やエラーの原因になります。なお文字コードがUTF-8なら、ほかの記号はそのまま書いて問題ありません。

コードにメモを残す

<!--と-->で囲んだ部分はコメントと呼ばれ、ブラウザに無視されてページに表示されません。コードの説明メモや、一時的に表示させたくない部分の無効化に使います。

<p>コメントの外にいます。</p>
<!-- <p>コメントの中にいます。</p> -->

この例では、1行目の段落だけが表示されます。2行目はコメントなので、ページには表示されません。

ハコマル

ハコマル

入れ子は「後から開いたら先に閉じる」、属性値は「必ず引用符」の2つを意識しようね!

出典:MDN「基本的な HTML の構文」

STEP3:HTML文書の骨組みを作る

タグの書き方がわかったら、1ページ分のHTMLを組み立てます。骨組みを書いて、ブラウザで表示するところまで進めましょう。

ページのひな形を作る

最小限の完全なWebページは、次のように書きます。

<!doctype html>                 <!-- ① -->
<html lang="ja">                <!-- ② -->
  <head>                        <!-- ③ -->
    <meta charset="utf-8" />    <!-- ④ -->
    <title>テストページ</title>  <!-- ⑤ -->
  </head>
  <body>                        <!-- ⑥ -->
    <p>これは私のページです。</p>
  </body>
</html>
コード解説
① 文書型宣言。現在は歴史的な名残だが、標準準拠モードで表示させるため、すべてのページの先頭に書く
② ページ全体を囲むルート要素
③ ページに関する情報を入れる部分。ここに書いた内容はページ上に表示されない
④ 文字コードの指定。ほとんどの言語の文字に対応し、文字化けを防げる
⑤ ブラウザのタブやブックマークに表示されるページタイトル
⑥ テキスト・画像・動画など、ページに表示するすべての内容を入れる部分

headとbodyの違い

bodyには、テキストや画像など、ブラウザに表示する内容を入れます。一方のheadには、表示されないメタデータ※1を入れます。

headには、タイトルや文字コード、CSSへのリンク、ページの説明文などを書きます。ブラウザはこの情報を使って、ページを正しく表示します。

※1:メタデータ…ページそのものについての情報。ページの本文とは別に扱われます。

titleとh1の違い

どちらも「タイトル」と呼ばれることがあり、混同されやすい要素です。役割はまったく違うので、次の表で区別しておきましょう。

要素 書く場所 表示される場所 役割
<title> head タブ・ブックマーク・検索結果(本文には表示されない) HTML文書全体のタイトル
<h1> body ページの本文 最上位の見出し。一般的に1ページに1回、記事タイトルなどに使う

ファイルを保存してブラウザで表示する

ひな形を書いたら、ファイルとして保存してブラウザで開きます。手順は次のとおりです。

  1. 作業用のフォルダーを作る(例:first-website)
  2. コードエディターで新しいファイルを作り、ひな形を書く
  3. ファイル名を「index.html」にして、作ったフォルダーに保存する
  4. 保存したファイルをブラウザで開く

コードを書き換えたら、ファイルを保存してからブラウザを再読み込み(更新)します。保存しないと、変更は表示に反映されません。

画像などが表示されないときは、引用符の抜けがないか確認しましょう。ファイル名やパスの書き間違いも、よくある原因です。

ハコマル

ハコマル

「書く→保存→再読み込み」をくり返すと、変化が目で見えて楽しいよ!

出典:MDN「基本的な HTML の構文」「ヘッド部には何が入る? ウェブページのメタデータ」「HTML: コンテンツの作成」(ページ一覧)

STEP4:実務で必要な基本設定を追加する

骨組みができたら、実務で必要になる設定を加えます。ページの言語、スマホ表示、検索結果の説明文、外部ファイルの読み込みの4つです。

ページの言語を指定する

html要素の開始タグにlang属性を書くと、ページの言語を指定できます。日本語のページなら「ja」と書きます。

<html lang="ja">

言語を指定すると、検索エンジンがページの言語を正しく判定できます。読み上げソフトも、正しい発音で読めるようになります。

ページの一部だけ別の言語にしたい場合は、その部分にlang属性を付けます。

<p>日本語の文章の中の<span lang="en">English</span></p>

スマホ表示に対応させる

スマホで見やすく表示させるには、headに次の1行を書きます。表示領域を端末の幅に合わせ、100%の倍率で表示させる設定です。

<meta name="viewport" content="width=device-width, initial-scale=1" />

画面幅に合わせてレイアウトを変える、レスポンシブデザインもこの設定が前提になります。

user-scalable=noなどで、拡大を禁止するのは避けましょう。弱視のユーザーが文字を読めなくなり、アクセシビリティの基準(WCAG)の上でも問題になります。

検索結果用の説明文を書く

meta descriptionは、ページの内容を説明する文章です。検索結果に表示されることがあり、SEOにも関係します。

<meta name="description" content="ページの説明" />

同じmeta要素のkeywordsは、現在は使われていません。スパムに悪用されたため、検索エンジンから無視されています。

CSSとJavaScriptを読み込む

外部のCSSファイルとJavaScriptファイルは、headの中で読み込みます。

<link rel="stylesheet" href="style.css" />  <!-- CSSを読み込む -->
<script src="script.js" defer></script>     <!-- JavaScriptを読み込む -->

scriptに付けたdeferは、HTMLの読み込みが終わってからJavaScriptを実行させる指定です。まだ存在しない要素を操作してエラーになるのを防げるので、基本はdeferを付けて読み込みます。

CSSには、外部ファイルを読み込む以外の書き方もあります。場面に応じて、次のように使い分けます。

書き方 向いている場面
外部CSSファイル(link要素) 複数ページで共通のスタイルを使う場合。基本はこの方法
style要素 そのページだけのスタイルを書く場合
style属性 試作や特殊なケース。本番環境では推奨されない
ハコマル

ハコマル

文字コードとviewportは、どのページにも必ず入れておきたい設定だよ!

出典:MDN「ヘッド部には何が入る? ウェブページのメタデータ」「<meta name=”viewport”>」(ページ一覧)

STEP5:本文でよく使うタグで中身を書く

最後に、ひな形のbodyに実際の内容を書いていきます。ほとんどのページで使う、見出し・リスト・まとめ用の要素を紹介します。

見出しで文章を組み立てる

見出しはh1〜h6の6段階あり、数字が小さいほど上位の見出しです。本の「タイトル→章→節」のように、見出しと段落(p)を組み合わせて文章を組み立てます。

<h1>ブログのタイトル</h1>  <!-- ① -->
<p>導入の文章</p>
<h2>章の見出し</h2>        <!-- ② -->
<p>本文</p>
<h3>節の見出し</h3>        <!-- ③ -->
<p>本文</p>
コード解説
① ページの最上位の見出し。1ページに1つが望ましい
② 章にあたる見出し
③ 章の中の節にあたる見出し

見出しを使うときの注意点

  • h1は1ページに1つにする
  • 見出しのレベルは階層の順番どおりに使う(同じ階層の小見出しに、h2とh3を混ぜない)
  • 1ページで使うレベルは、3つまでを目安にする

文字を大きくしたいという理由で、見出しのレベルを選ぶのはやめましょう。見た目の調整はCSSの役割です。

見出しは、検索エンジンがページの重要なキーワードとして扱います。スクリーンリーダーの利用者も、見出しをたどって必要な情報を探します。

箇条書きを作る

項目を並べた箇条書きは、リストと呼ばれます。リスト全体をulまたはolで囲み、1項目ずつliで囲みます。順番に意味があるかどうかで使い分けます。

要素 使う場面 例
<ul>(順序なしリスト) 項目の順番が関係ないとき 買い物リスト
<ol>(順序付きリスト) 項目の順番に意味があるとき 道順、料理のレシピ
<ul>                  <!-- ① -->
  <li>牛乳</li>       <!-- ② -->
  <li>卵</li>
</ul>
<ol>                  <!-- ③ -->
  <li>フォルダーを作る</li>
  <li>ファイルを保存する</li>
</ol>
コード解説
① 番号なしのリスト全体を囲む
② リストの1項目。項目の数だけ書く
③ 番号付きのリスト全体を囲む

リストを入れ子にする

項目の中に、さらに細かい項目を入れることもできます。親の項目のliの中に、別のulやolを書きます。

<ol>
  <li>材料を混ぜ合わせる
    <ul>                            <!-- ① -->
      <li>粗めにしたいときは短時間</li>
      <li>滑らかにしたいときは長め</li>
    </ul>
  </li>                             <!-- ② -->
</ol>
コード解説
① 親の項目(li)の中に、子のリストを書く
② 子のリストを書き終えてから、親の項目を閉じる

要素をまとめる

divとspanは、それ自体に意味を持たない「まとめ役」の要素です。複数の要素をまとめて、CSSやJavaScriptで扱いたいときに使います。

要素 種類 使う場面
<div> ブロック(まとまり単位) 見出しや段落をまとめて、1つのパーツにする
<span> インライン(文中の一部) 文章の一部だけを囲む
<div class="shopping-cart">                    <!-- ① -->
  <h2>ショッピングカート</h2>
  <p>合計:3,000円</p>
</div>
<p>本文の中の<span class="note">補足</span>です。</p>  <!-- ② -->
コード解説
① 見出しと段落をまとめて、1つのパーツにする
② 文章の一部だけを囲む

divやspanには、class属性でラベルを付けて使うのがおすすめです。CSSやJavaScriptから指定しやすくなります。

divは便利ですが、使いすぎには注意しましょう。意味を持たない要素なので、多用するとコードが読みにくくなり、修正もしにくくなります。

ページの領域を分ける

ページの領域を表す専用の要素がある場合は、divよりもそちらを優先します。

要素 表す領域
<header> ページや記事の導入部分(ヘッダー)
<nav> 主要なナビゲーション(メニュー)
<main> そのページ固有のメインコンテンツ。1ページに1回、bodyの直下に置く
<article> それだけで意味が伝わる内容のまとまり(ブログ記事など)
<section> ページ内の1つの区切り。見出しで始めるのが基本
<aside> 本文に間接的に関わる補足情報(関連リンクなど)
<footer> ページの終わりの部分(著作権表示など)
ハコマル

ハコマル

見出しは「文字の大きさ」じゃなくて「階層」で選ぶのがコツだよ!

出典:MDN「見出しと段落」「リスト」「文書とウェブサイトの構造」(ページ一覧)

完成形のコード:実務で使えるHTMLのひな形

STEP3の骨組みにSTEP4の設定とSTEP5の本文を加えると、次のひな形になります。新しいページを作るときは、このコードをコピーして使ってください。

表示をすぐに確かめたいときは、ブラウザ上でコードを試せるCodePenを使うと便利です。index.htmlの中身を、このコードに丸ごと貼り替えるだけで表示されます。

<!doctype html>                                  <!-- ① -->
<html lang="ja">                                 <!-- ② -->
  <head>
    <meta charset="utf-8" />                     <!-- ③ -->
    <meta name="viewport" content="width=device-width, initial-scale=1" /> <!-- ④ -->
    <meta name="description" content="ページの説明" /> <!-- ⑤ -->
    <title>ページのタイトル</title>              <!-- ⑥ -->
    <link rel="stylesheet" href="style.css" />   <!-- ⑦ -->
    <script src="script.js" defer></script>      <!-- ⑧ -->
  </head>
  <body>
    <h1>ページの見出し</h1>                      <!-- ⑨ -->
    <p>本文</p>
    <h2>章の見出し</h2>                          <!-- ⑩ -->
    <ul>                                         <!-- ⑪ -->
      <li>項目</li>
    </ul>
  </body>
</html>
コード解説
① ページを標準準拠モードで表示させるための文書型宣言(STEP3)
② ページ全体を囲み、ページの言語を日本語に指定する(STEP4)
③ 文字化けを防ぐための文字コードの指定(STEP3)
④ スマホで画面幅に合わせて表示させる(STEP4)
⑤ 検索結果に表示されることがあるページの説明文(STEP4)
⑥ タブやブックマークに表示されるページタイトル(STEP3)
⑦ 外部のCSSファイルを読み込む(STEP4)
⑧ HTMLの読み込み後にJavaScriptを実行する(STEP4)
⑨ ページ本文の最上位の見出し(STEP5)
⑩ 章にあたる見出し(STEP5)
⑪ 順番が関係ない項目を並べるリスト(STEP5)

さいごに

まとめ

HTMLは、Webページの中身と構造を作る言語です。まずは次の3つを押さえれば、実務の基本的な場面に対応できます。

HTMLを書くときの基本

  • タグは正しく入れ子にし、属性値は引用符で囲む
  • ページはひな形から作り、headに文字コード・viewport・タイトルを入れる
  • 本文は見出しの階層を守り、リストは順番の有無で使い分ける

新しいページを作るときは、完成形のひな形をコピーして書き始めてください。慣れてきたら、ほかのサイトのHTMLを開いて書き方を比べてみましょう。

よくある質問

「HTML5」と今のHTMLは違うもの?

現在のHTMLの仕様は、WHATWGが継続的に更新する「HTML Living Standard」で、バージョン番号はありません。

「HTML5」は、今ではモダンなWeb技術全般を指す言葉として使われています。書き方を調べるときは「HTML5」にこだわらず、現在のHTMLとして確認すれば大丈夫です。

<br>と<br />はどちらが正しい?

どちらも正しい書き方です。末尾のスラッシュは書き方のスタイルの違いで、必須ではありません。

画像のalt属性は省略してもいい?

意味を持つ画像には、必ず付けるべき属性です。画像を見られない人に、画像の内容を伝える役割があります。

divとsectionはどう使い分ける?

見出しを伴うページ内の区切りならsectionを使います。意味を持たせず、CSSやJavaScriptのためにまとめたいだけならdivを使います。

迷ったときは、まず意味を表す要素が使えないかを考え、当てはまるものがない場合にdivを選びましょう。

ほかのサイトのHTMLを見るには?

ページ上で右クリックし、「ページのソースを表示」を選ぶとHTMLを見られます。ブラウザの開発者ツールでも、headの中身などを確認できます。

参考にした公式情報

Mozilla公式 開発者向けドキュメント(MDN Web Docs)

HTMLの役割、タグと属性の書き方、ページのひな形とheadに書く設定を確認できます。