HTML4.01では要素は大きくブロックレベル要素とインライン要素のいずれかに分類されていますが、
HTML5ではブロックレベル要素とインライン要素の分類は無くなります。
HTML5では、メタデータ、フロー、セクション、ヘッディング、フレージング、エンベッディッド、インタラクティブというコンテンツの種類が定義されています。
HTML5におけるこれらのコンテンツの種類の定義は「コンテンツ・モデル」と呼ばれます。
フロー・コンテンツ
(Flow content)子孫にテキストなどを持つものセクショニング・コンテンツ
(Sectioning content)見出しと概要を付けられるものヘッディング・コンテンツ
(Heading content)セクションの見出しとなるものフレージング・コンテンツ
(Phrasing content)段落などの中に含まれる文節・語句などエンベッディッド・コンテンツ
(Embedded content)文書に他のリソースを埋め込むものインタラクティブ・コンテンツ
(Interactive content)ユーザーによる操作に対応するもの
メタデータ・コンテンツ (Metadata content) |
文書情報や他の文書との関係を定義するもの |
---|
HTML5の各要素は、上記のコンテンツの種類のいずれか一つのみに分類されるのではなく、
一つの要素に対して複数のコンテンツの種類が定義されることもあります。
例えば、section要素はフロー・コンテンツであり、同時にセクショニング・コンテンツでもあります。
また、特定の属性や属性値を持った場合にだけインタラクティブ・コンテンツになるなど、条件付きで要素の種類が変化することもあります。
base
command
link
meta
noscript
script
style
title
a
abbr
address
area
*article
aside
audio
b
bdo
blockquote
br
button
canvas
cite
code
command
datalist
del
details
dfn
div
dl
em
embed
fieldset
figure
footer
form
h1
h2
h3
h4
h5
h6
header
hgroup
hr
i
iframe
img
input
ins
kbd
keygen
label
link
*map
mark
math
menu
meta
*meter
nav
noscript
object
ol
output
p
pre
progress
q
ruby
s
samp
script
section
select
small
span
strong
style
*sub
sup
svg
table
textarea
time
ul
var
video
wbr
* 特定の条件の場合
article
aside
nav
section
h1
h2
h3
h4
h5
h6
hgroup
a
*abbr
area
*audio
b
bdo
br
button
canvas
cite
code
command
datalist
del
*dfn
em
embed
i
iframe
img
input
ins
*kbd
keygen
label
link
*map
*mark
math
meta
*meter
noscript
object
output
progress
q
ruby
s
samp
script
select
small
span
strong
sub
sup
svg
textarea
time
var
video
wbr
* 特定の条件の場合
audio
canvas
embed
iframe
img
math
object
svg
video
a
audio
*button
details
embed
iframe
img
*input
*keygen
label
menu
*object
*select
textarea
video
** 特定の条件の場合
HTML5では、上記のコンテンツの種類に各要素が分類されることで、
どの要素の中にどの要素を配置できるかというタグの配置ルールが決まります。
HTML4.01でタグの意味を意識してマークアップしてきた人なら、
上記のコンテンツの種類の分類を知らなくてもそれほど大きな間違いをすることはないでしょうが、
文法的により正確なHTML文書を作成することを目指す場合には、
どの要素がどのコンテンツの種類に分類されているかを意識する必要があるでしょう。
<前へ | 記事一覧へ | 次へ> |