<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>