<main></main>

更新日
仕様 HTML Living Standard
分類 フロー・コンテンツ / パルパブル・コンテンツ
利用場所 フロー・コンテンツが置ける場所(ただし、祖先要素はhtml要素body要素div要素、アクセス可能な名前を持たないform要素、自律カスタム要素に限定される)
内容 フロー・コンテンツ

main要素は、文書のメインコンテンツを表します。

  • hidden属性が指定されていないmain要素は、1つの文書内に2つ以上配置することはできません。(表示されるmain要素が1つでなければならない)

<main>

メインコンテンツを表します

</main>

main要素を使用することで、それが文書のメインコンテンツであることを表すことができます。

main要素の内容には、その文書で固有かつ中心的な内容を配置することになります。各文書で共通使用されるナビゲーションやロゴ、著作権情報などはこの要素内には含めません。

次の例では、メインコンテンツとして2つの記事を配置しています。

<main>

<article>
<h2>記事その1</h2>
...
</article>

<article>
<h2>記事その2</h2>
...
</article>

</main>

サイト内で共通使用されるナビゲーション(グローバルナビゲーション)は不可となりますが、メインコンテンツ内で使用されるナビゲーション(ページ内リンク)であればmain要素の中に配置することができます。

次の例では、main要素の中にページ内リンクのメニューを配置しています。

<main>

<h1>メインコンテンツ</h1>

<nav>
<ul>
<li><a href="#article1">記事その1</a></li>
<li><a href="#article2">記事その2</a></li>
<li><a href="#article3">記事その3</a></li>
</ul>
</nav>

<article id="article1">
<h2>記事その1</h2>
...
</article>

<article id="article2">
<h2>記事その2</h2>
...
</article>

<article id="article3">
<h2>記事その3</h2>
...
</article>

</main>

hidden属性が指定されたmain要素は、文書内に複数配置することが可能です。

次の例では、文書内に3つのmain要素を配置して、そのうちの2つが非表示になっています。

<main>
<p>デフォルトで表示されるメインコンテンツ</p>
</main>

<main hidden>
<p>現時点では関連していないメインコンテンツ(デフォルトでは非表示)</p>
</main>

<main hidden>
<p>現時点では関連していないメインコンテンツ(デフォルトでは非表示)</p>
</main>
  • 例えば、表示されるメインコンテンツを、スクリプトによって切り替えることが考えられます。

セクションについて

main要素はセクショニング・コンテンツではないため、新たなセクションを生成しません。

旧HTMLからの変更点
  • HTML5:main要素が定義されました。
  • HTML5.2:main要素を複数配置できるようになりました。(ただし、表示されるmain要素は1つのみ)
  • HTML LS:利用場所に関する定義が変更されました。

使用例


<!DOCTYPE html>
<html>
<head>

<title>HTMLの基本</title>

</head>
<body>


<header>

<h1>HTMLの基本</h1>

<!-- グローバルナビゲーション -->
<nav>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="html.html">HTMLの基本</a></li>
<li><a href="css.html">CSSの基本</a></li>
</ul>
</nav>

</header>


<main>

<article>

<header>

<h2>コンテンツモデルとカテゴリー</h2>

<!-- ページ内リンク -->
<nav>
<ul>
<li><a href="#contentmodel">コンテンツモデル</a></li>
<li><a href="#category">要素のカテゴリー</a></li>
<li><a href="#other">その他参考</a></li>
</ul>
</nav>

</header>

<section id="contentmodel">
<h3>コンテンツモデル</h3>
<p>記事の内容 ...</p>
</section>

<section id="category">
<h3>要素のカテゴリー</h3>
<p>記事の内容 ...</p>
</section>

<section id="other">
<h3>その他参考</h3>
<p>記事の内容 ...</p>
</section>

</article>

</main>


<aside>

<p>サイドバー的な内容をここに入れる。</p>

</aside>


<footer>

<ul>
<li><a href="note.html">ご利用について</a></li>
<li><a href="contact.html">お問い合わせ</a></li>
</ul>

<p><small>(c) 2021 TAG index.</small></p>

</footer>


</body>
</html>