2026年1月26日 Tech

1-1 HTMLの基礎

HTMLの基礎

Webページの「構造」を定義する言語。タグで要素を囲んで意味を持たせる。それがHTMLである。


なぜこれを学ぶのか

Webサイト、Webアプリ、メール。インターネット上のあらゆるコンテンツの基盤にHTMLがある。Webを学ぶ第一歩として、HTMLの理解は必須である。


HTMLとは何か

HTMLは HyperText Markup Language の略である。

単語 意味
HyperText リンクで文書同士をつなげる仕組み
Markup タグで文書に「意味」をつける
Language コンピュータへの指示を記述する言語

HTMLは「プログラミング言語」ではなく「マークアップ言語」である。計算や条件分岐はできないが、文書の構造を定義できる。

flowchart LR subgraph PL[プログラミング言語] P1[Python] P2[JavaScript] P3[計算・条件分岐ができる] end subgraph ML[マークアップ言語] M1[HTML] M2[XML] M3[構造・意味を定義する] end

HTMLの基本構造

すべてのHTMLファイルは、以下の構造を持つ。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ページタイトル</title>
</head>
<body>
    <!-- ここに表示される内容を書く -->
</body>
</html>

各部分の役割

要素 役割
<!DOCTYPE html> HTML5文書であることを宣言
<html> 文書全体を囲む
<head> メタ情報(タイトル、文字コードなど)
<body> 実際に画面に表示される内容
flowchart TB A[html] B[head: title, meta, link] C[body: 見出し, 段落, 画像] A --> B A --> C

基本的なタグ

見出しと段落

<h1>大見出し</h1>
<h2>中見出し</h2>
<h3>小見出し</h3>

<p>これは段落です。文章のまとまりを表します。</p>
タグ 意味 用途
<h1><h6> 見出し(heading) 文書の階層構造を作る
<p> 段落(paragraph) 文章のまとまり
flowchart TB H1[h1: 大見出し] H2a[h2: 中見出し] H2b[h2: 中見出し] H3a[h3: 小見出し] H3b[h3: 小見出し] P1[p: 段落...] P2[p: 段落...] H1 --> H2a H1 --> H2b H2a --> H3a H2a --> H3b H3a --> P1 H3b --> P2

ポイント: <h1> は1ページに1つが推奨。見出しは階層順(h1→h2→h3)で使う。


リスト

<!-- 順序なしリスト -->
<ul>
    <li>項目1</li>
    <li>項目2</li>
    <li>項目3</li>
</ul>

<!-- 順序ありリスト -->
<ol>
    <li>手順1</li>
    <li>手順2</li>
    <li>手順3</li>
</ol>
タグ 意味 表示
<ul> 順序なしリスト(unordered list) ・項目
<ol> 順序ありリスト(ordered list) 1. 項目
<li> リスト項目(list item) 各項目
flowchart TB subgraph UL[ul: 順序なしリスト] LI1[li: 項目1] LI2[li: 項目2] LI3[li: 項目3] end subgraph OL[ol: 順序ありリスト] OLI1[li: 1. 手順1] OLI2[li: 2. 手順2] OLI3[li: 3. 手順3] end

リンク

<a href="https://example.com">リンクテキスト</a>
属性 役割
href リンク先のURL
target="_blank" 新しいタブで開く
rel="noopener" セキュリティ対策(target=”_blank”と併用)

例:外部リンクを安全に開く

<a href="https://example.com" target="_blank" rel="noopener">
    外部サイトへ
</a>
flowchart LR A[ページA: index.html] B[ページB: about.html] C[外部サイト: example.com] A -->|内部リンク| B A -->|外部リンク| C B -->|内部リンク| A style C fill:#f9f,stroke:#333

これが「HyperText」の仕組み。リンクで文書同士をつなげることで、Web全体が一つのネットワークになる。


画像

<img src="photo.jpg" alt="写真の説明">
属性 役割 必須
src 画像ファイルのパス
alt 代替テキスト
width 幅の指定 -
height 高さの指定 -

alt属性の重要性:
- 画像が読み込めない時に表示される
- スクリーンリーダーが読み上げる(アクセシビリティ)
- SEO(検索エンジン最適化)に影響


強調

<p>この文章で<strong>重要な部分</strong>を強調します。</p>
<p><em>イタリック</em>で軽い強調を表現します。</p>
タグ 意味 見た目
<strong> 重要性(強い強調) 太字
<em> 強調(emphasis) 斜体

注意: 見た目を変えるためだけに使わない。意味的に強調したい時に使う。


セマンティックHTML

HTMLには「意味を持つタグ」がある。これを使うと、検索エンジンやスクリーンリーダーがページ構造を理解しやすくなる。

<body>
    <header>
        <h1>サイトタイトル</h1>
        <nav>ナビゲーション</nav>
    </header>

    <main>
        <section>
            <h2>セクション1</h2>
            <p>内容...</p>
        </section>
    </main>

    <footer>
        <p>&copy; 2026 Author</p>
    </footer>
</body>
flowchart TB BODY[body] HEADER[header: タイトル, ナビ] MAIN[main: メインコンテンツ] FOOTER[footer: 著作権, リンク] S1[section] S2[section] BODY --> HEADER BODY --> MAIN BODY --> FOOTER MAIN --> S1 MAIN --> S2
タグ 役割
<header> ページ/セクションの導入部分
<nav> ナビゲーションリンク
<main> ページの主要コンテンツ(1ページに1つ)
<section> 関連コンテンツのまとまり
<article> 独立した記事
<aside> サイドバー、補足情報
<footer> 著作権、連絡先などの補足情報

なぜセマンティックタグを使うのか?

理由 説明
SEO 検索エンジンがページ構造を理解しやすい
アクセシビリティ スクリーンリーダーが正しく読み上げる
保守性 コードを見た時に構造が分かりやすい

フォーム

ユーザーからの入力を受け取るには、フォーム要素を使う。

<form>
    <div>
        <label for="name">お名前:</label>
        <input type="text" id="name" name="name" placeholder="山田太郎">
    </div>
    <div>
        <label for="email">メール:</label>
        <input type="email" id="email" name="email" placeholder="example@mail.com">
    </div>
    <div>
        <label for="message">メッセージ:</label>
        <textarea id="message" name="message" rows="4" placeholder="メッセージを入力"></textarea>
    </div>
    <button type="submit">送信</button>
</form>

フォーム要素一覧

flowchart TB L1[label: お名前] I1[input] L2[label: メッセージ] T1[textarea] BTN[button: 送信] SERVER[サーバー] L1 -.->|for/id| I1 L2 -.->|for/id| T1 BTN -->|送信| SERVER
タグ 役割
<form> フォーム全体を囲む
<label> 入力欄の説明
<input> 1行の入力欄
<textarea> 複数行の入力欄
<button> ボタン
<select> ドロップダウン選択

input の type 属性

type 用途 特徴
text テキスト入力 デフォルト
email メールアドレス 形式チェックあり
password パスワード 入力が隠される
number 数値 数値のみ入力可
date 日付 カレンダー表示
checkbox チェックボックス 複数選択可
radio ラジオボタン 単一選択

label と id の紐付け

<label for="username">ユーザー名:</label>
<input type="text" id="username" name="username">

<label>for 属性と <input>id 属性を一致させると:
- ラベルをクリックした時に入力欄にフォーカスが移る
- アクセシビリティが向上する


特殊文字(HTMLエンティティ)

HTMLで特別な意味を持つ文字は、エンティティで記述する。

表示 エンティティ 用途
© &copy; コピーライト
< &lt; 小なり記号
> &gt; 大なり記号
& &amp; アンパサンド
&quot; ダブルクォート
(スペース) &nbsp; 改行されない空白

まとめ

  • HTMLは「Webページの構造」を定義する言語
  • <!DOCTYPE html> から始まり、<html>, <head>, <body> で構成
  • 見出し(h1-h6)、段落(p)、リスト(ul/ol/li)で文書を構造化
  • リンク(a)と画像(img)でコンテンツを充実させる
  • セマンティックタグ(header, main, footer)で意味を持たせる
  • フォーム要素(form, input, textarea)でユーザー入力を受け取る

用語

用語 説明
タグ <tag> のように <> で囲まれた記号
要素 開始タグから終了タグまでの全体
属性 タグに追加情報を与える(例:href="..."
セマンティック 「意味的な」という意味。構造に意味を持たせること
アクセシビリティ 障害を持つ人も含め、誰もが利用できること

HTML #Webデザイン #フロントエンド #初心者向け

目次