OSSANS Project since 2020

「もし四十のおっさんがプログラミングを始めたらどう人生変わるのか」
このブログのメインテーマです
肩肘張らずにユルく、ときたま厳しくやっていきます
※プログラミング以外のことも書きます

HTML

2023.02.18(更新)

【図解あり】aタグの入れ子ルールとHTMLの入れ子ルールを覚える方法

アイキャッチ画像
HTML

aタグの入れ子のルールがイマイチ覚えられない?どうやったら覚えられるの?

こんなお悩みに答えていきます。

本記事の内容

  • aタグの入れ子ルールの理解
  • HTMLのカテゴリー&コンテンツモデルの概念の理解

本記事を対象とする方

  • HTML初学者
  • なんとなくaタグルールを覚えている方
  • カテゴリー&コンテンツモデルを聞いたことがない方
  • フロントエンドエンジニアになりたい方

この記事を書いている僕はプログラミング歴1年8ヶ月です。webエンジニアとして”社内転職”に成功しました。

カテゴリー&コンテンツモデルを理解しよう

カテゴリー&コンテンツモデルって聞いたことありますか?aタグルールを理解する上で重要な概念なので、先に説明します。

カテゴリー&コンテンツモデルとは、HTMLの各要素をカテゴリー分けして扱うために定められたルールです。現行のHTMLは、HTML Living Standardと言いまして、2021年にW3Cが正式な勧告として発表したHTML5の後継バージョンです。

今回紹介するカテゴリー&コンテンツモデルは、HTML5から取り入れられた概念となります。

まずは、カテゴリーから見ていきましょう。

カテゴリーは以下の7つに分けられていて、HTMLの各要素はいずれかのカテゴリーに属します。

  • メタデータコンテンツ
  • フローコンテンツ
  • セクショニングコンテンツ
  • ヘディングコンテンツ
  • フレージングコンテンツ
  • エンベッディッドコンテンツ
  • インタラクティブコンテンツ

メタデータコンテンツ

タイトルやメタデータなどの文書情報等を表すコンテンツです。head要素内で使用できる要素がメタデータ・コンテンツに属します。

フローコンテンツ

body内で使用されている要素は基本的にフロー・コンテンツに属します。

セクショニングコンテンツ

文章の区分や節などの、区切りを表すコンテンツです。セクショニング・コンテンツの要素は見出し要素を中に入れますが、asideとnavに関しては性質上必ずしも見出し要素を入れなくてはいけないという決まりはありません。

ヘディングコンテンツ

見出しを表すコンテンツです。

フレージングコンテンツ

文章内で使用するコンテンツです。HTML4やXHTMLで定義されていた「インライン要素」の考え方に共通します。

エンベッディッドコンテンツ

画像や動画、音声など、文書内に埋め込みを行うコンテンツです。

インタラクティブコンテンツ

リンクやフォームなど、ユーザーが操作することできるコンテンツです。

ちょっとまだ分かりにくいと思いますが、次のコンテンツモデルを見ればだいぶ理解が進むかと思います。

コンテンツモデル

その要素をどのカテゴリーのコンテンツに入れていいかを定めたルールです。タグの入れ子ルールはこのコンテンツモデルによって決まっています。

コンテンツモデル一覧表 ※現在のHTMLにはこのようなカテゴリールールがあります

aタグの入れ子ルール

aタグは少し特殊なルールがあります。それは直近の親要素タグのコンテンツモデルを引き継ぐということです。

【HTML】

  1. <div>
  2.   <a>
  3.     <h1>入れ子にできる</h1>
  4.   </a>
  5. </div>
  1. <span>
  2.   <a>
  3.     <h1>入れ子にできない</h1>
  4.   </a>
  5. </span>

最初の例は、divのコンテンツモデルを引き継ぐので入れ子にできます。しかし、2番目の例は、spanのコンテンツモデルを引き継ぐので入れ子にできません。

divはセマンティクス的に意味を持たないタグなので、もし迷ったら一旦divを親要素にしておけば間違いではないです

aタグ以外の入れ子ルール

せっかくなので、aタグ以外の入れ子ルールについてもまとめようと思います。

と思ったのですが、ものすごいチートシートを見つけてしまったのでご紹介します。

こちらのチートシート、サイトに明記されていますが、HTML5.2までのルールとなっております。HTML Living Standardのルールは別途ご確認ください。

HTMLの学習 ステップアップための書籍紹介

最後にHTMLのスキルをステップアップさせるための書籍を紹介します。

この本は英文のHTML仕様書を優しく噛み砕いた内容となっており、HTMLで使用される各要素のセマンティクスはもちろんのことアクセシビリティについて学ぶことができます。僕はドットインストールでHTMLの学習をスタートし、その後「模写」したり、実際にWebサイトを制作したりしてHTMLに触れてきました。単純に画面に表示できればサイトが完成するわけではなく、セマンティクスを踏まえると、使用するタグの意味合いを意識せざるを得ません。その点において、ドットインストールで学習した内容だけでは全く物足りませんでした。

本書は著者が言うように、「HTMLの学習をステップアップするための書籍がなかなかお目にかかれない」という問題を解決しており、HTMLの扱いに慣れてきた初学者向けの内容となっております。

僕の経験から言うと、HTMLの最初の入り口としては向いてないです。どちらかというと基礎を終えた初学者が、次にステップアップするのに適している本だからです。逆に言うとステップアップを目的とするならば、必読の書と言えると思います。

まとめ

今回はHTMLのカテゴリー&コンテンツモデルおよび入れ子ルールについて解説しました。最後までお読み頂きありがとうございました。

現行のHTMLにはタグ分けするカテゴリーがある

一定のルールが決められたコンテンツモデルに沿ってタグを分ける

入れ子のルールはコンテンツモデルによって決まる

関連記事

    現在は関連する記事がございません。

CATEGORY カテゴリー別最新記事

  • CSS
    アイキャッチ画像
    CSS

    【CSS】margin?position?要素の中央寄せで使うプロパティとは?

  • Docker
    アイキャッチ画像
    Docker
    2022.10.03(更新)

    【簡単設定!】DockerでWordPressをローカル開発する方法

  • HTML
    アイキャッチ画像
    HTML
    2023.02.18(更新)

    【図解あり】aタグの入れ子ルールとHTMLの入れ子ルールを覚える方法

  • JavaScript
    アイキャッチ画像
    JavaScript
    2023.03.04(更新)

    【実例コードあり】覚えておきたいパララックスデザインの3つの基本

  • Python
    アイキャッチ画像
    Python
    2023.02.09(更新)

    【やらなきゃ損!】2日でできるPythonのExcelコピペ自動化!

  • Study
    アイキャッチ画像
    Study
    2023.02.16(更新)

    稼ぐために始めたプログラミングのこれまでの振り返り。勉強方法や役立った本も紹介。

  • web site
    アイキャッチ画像
    web site
    2022.11.26(更新)

    ページ表示速度アップ!npmでソースファイルを軽量化する方法【サクッと簡単!】

  • WordPress
    アイキャッチ画像
    WordPress
    2022.10.26(更新)

    【コピペ可】WordPressサイトをPWA化するためにService Workerを実装してみた。