a要素のアップデート
HTML5では、ウェブページでは必ずといっても良いほどよく使われるa
要素についても、いくつか変更された点があります。ウェブ製作の現場で最も関係する変更点は、a
要素に入れることができる要素が変更された点と、ページ内アンカーのマークアップ方法でしょう。ここでは、その変更点の詳細を見ていきましょう。
ブロック要素をハイパーリンクに
旧来のHTMLでは、a
要素の中にはインライン要素しか入れることができませんでした。しかし、HTML5ではその制約が無くなり、ブロック要素をa
要素の中に入れることができるようになりました。
<a href="http://example.jp/"> <aside> <h3>広告</h3> <p>○○○○○○○○○○○</p> </aside> </a>
旧来のHTMLでは、a
要素の中にh3
やp
要素を入れることはできません。しかし、HTML5では、さまざまなコンテンツをまとめて特定のページへリンクさせることが可能となりました。
とはいえ、あらゆる要素をa
要素の中に入れて良いわけではありません。a
要素に入れることができない要素があります。それは、インタラクティブ・コンテンツと呼ばれるカテゴリーに属する要素です。インタラクティブ・コンテンツに属する要素は以下の通りです。
a
要素、audio
要素(controls
属性が存在する場合)、button
要素、details
要素、embed
要素、iframe
要素、img
要素(usemap
属性が存在する場合)、input
要素(type
属性がhidden
以外の場合)、keygen
要素、label
要素、menu
要素(type
属性がtoolbar
の場合)、object
要素(usemap
属性が存在する場合)、select
要素、textarea
要素、video
要素(controls
属性が存在する場合)
分かりやすく言うと、マウス・クリックなどのユーザーの操作を伴う要素は、a
要素の中に入れることができません。
ページ内のアンカー
旧来のHTMLでは、ページ内のアンカーとしてa
要素がよく使われてきました。
<a name="chapter01"></a><h2>第1章</h2>
HTML5ではa
要素のname
属性が廃止になりました。そのため、アンカーをa
要素を使ってマークアップすることはできません。HTML5では、id
属性によってアンカーを定義します。id
属性はグローバル属性の1つなので、HTML5で規定された全ての要素で利用可能です。つまり、どの要素もid
属性によってアンカーとして定義できます。
<h2 id="chapter01">第1章</h2>
このアンカーは、Internet Explorer 6といった古いブラウザーでも期待通りに機能します。
以上、用途が変更された要素について解説してきましたが、旧来からある要素も含めて、改めて理解することの重要性がお分かり頂けたら幸いです。次回は、HTML5でも注目度が高いマルチメディア関連の要素について解説します。