Sinatraのメモアプリを開発中にマークアップを行っていたところHTMLのアウトラインを意識したマークアップへの理解がとても曖昧だったのでタグの選び方にとても時間が掛かってしまった。 別にHTMLを舐めていた訳じゃないけどFBCのプラクティスでもあまり深く理解しようとしていなかったことを今頃になって猛反省しています。 HTMLは深堀りすればするほど沼だということに気付いたので特に使用頻度の高い部分だけをメモ。
HTML のドキュメント
HTML関連のドキュメントはとてもたくさんあるが特に以下のドキュメントを参考にすると良さそう。
公式ドキュメント: HTML Standard
タグについて: HTML 要素リファレンス - HTML: HyperText Markup Language | MDN
クイックリファレンス: スタイルシートリファレンス(ABC順)
アウトラインを意識したマークアップ時に使用するタグ
article
: 独立して意味をなすものsection
: 見出しとコンテンツがセットで表現できるもの、h
タグとセットで使うaside
: 余談・補足などheader
: メインコンテンツのヘッダー、メニューバーなどmain
: メインコンテンツfooter
: フッター、コピーライトなどdiv
: ひとかたまりの範囲として定義する、スタイルを目的にマークアップする場合に使う
divタグとsectionタグの使い分け
見出しとコンテンツをまとめられるならsection
、スタイル目的で囲みたいならdiv
を使う
アウトラインを意識したマークアップのサンプル
<!DOCTYPE html> <html> <head> <mata charset="utf-8"> <title>タイトル</title> <!-- CSS等の読込 --> </head> <body> <header> <h1>タイトル</h1> <nav> <ul> <li><a>リンク1</a></li> <li><a>リンク2</a></li> <li><a>リンク3</a></li> </ul> </nav> </header> <main> <article> <h2>見出し1</h2> <p>コンテンツ1</p> <section> <h3>見出し2</h3> <p>コンテンツ2</p> </section> </article> <aside> <h2>関連リンク</h2> <ul> <li><a>リンク1</a></li> <li><a>リンク2</a></li> <li><a>リンク3</a></li> </ul> </aside> </main> <footer> <p><small>©Copyright</small></p> </footer> </body> </html>
まとめ
なんとなく理解していた部分がはっきり理解できたのでスッキリ。 とはいえ実際にマークアップする時には毎回悩みそうな予感がバリバリする...