概説 編集

HTML 4.01ではSGML宣言で「OMITTAG YES」と宣言されているため、SGMLの省略タグ機構(要素の開始タグ及び終了タグは, そのタグの省略によってあいまいさが生じないときに限り省略できる仕組み)を用いることができる。SGMLの省略タグ機構では、タグの省略ができる場合の条件はいくつかあるが、HTML 4.01では次の2つだけを覚えておけば問題ない。

  • DTDでタグの省略が許可されている
  • タグを省略した場合でも文書構造が一意に定まる

ただし、文書構造が一意に定まるか否かについても、厳密にはSGMLの省略タグ機構を完全に理解していなければ判断できないことも多い点には注意が必要である。

タグの省略の例 編集

はじめに、タグを省略したHTML文書の例を示す。次のHTML文書はHTML 4.01 Strictとして妥当である。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>タグの省略の例</title>
<p>タグの省略の例。
<p>HTMLではタグの省略が可能。

このHTML文書で省略されたタグを補完すると次のようになる。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>タグの省略の例</title>
  </head>
  <body>
    <p>タグの省略の例。</p>
    <p>HTMLではタグの省略が可能。</p>
  </body>
</html>

HTML5 編集

HTML5は従来のHTMLと異なりSGMLに基づいていません。このためDTD宣言を行うことは出来ず、文書型宣言は単に“<!DOCTYPE html>”となり、DTDにより定義されていたSGMLの省略タグ機構はHTML5には当てはまりません。

<!DOCTYPE html>
<html lang="ja">
<meta charset="UTF-8">
<title>タグの省略の例</title>
<p>タグの省略の例。
<p>HTML5でもタグの省略が可能。
HTML要素
HTML要素の中の最初のものがコメントでない場合、HTML要素の開始タグを省略することができます[1]
HTML要素の終了タグは、そのHTML要素の直後にコメントがない場合は省略することができます[1]
HEAD要素
HEAD要素の開始タグは、要素が空の場合やHEAD要素内の最初のものが要素の場合には省略できます[2]
HEAD要素の直後にASCII空白文字やコメントがない場合、HEAD要素の終了タグは省略できます[2]
BODY要素
BODY要素の開始タグは、要素が空の場合や、BODY要素内の最初のものがASCII空白文字やコメントでない場合には省略できますが、BODY要素内の最初のものがMETA、LINK、SCRIPT、STYLE、TEMPLATE 要素の場合は例外です[3]
BODY要素の終了タグは、BODY要素の直後にコメントがない場合省略することができます[3]
P要素
P要素の直後にADDRESS、ARTICLE、ASIDE、BLOCKQUOTE、DETAILS、DIV、DL、FIELDSET、FIGCAPTION、FIGRE、FOOTER、FORM、H1、H2、H3、H4、H5、H6、HEADER、HGROUP、HR、MAIN、MENU、NAV、OL、P、PRE、SECTION、TABLE、UL要素がある場合、または親要素にそれ以上の内容がなく、親要素がAUDIO、DEL、INS、MAP、NOSCRIPT ではない要素である場合には、P要素のendタグを省略することができます。OL, P, PRE, SECTION, TABLE, UL 要素、または、親要素にこれ以上のコンテンツがなく、かつ、親要素が A, AUDIO, DEL, INS, MAP, NOSCRIPT, VIDEO 要素ではない要素、または、自律的なカスタム要素である場合[4]
LI要素
DT要素
DD要素
RT要素
RP要素
CAPTION要素
COLGROUP要素
TBODY要素
THEAD要素
TFOOT要素
TR要素
TD要素
TH要素
OPTGROUP要素
OPTION要素

この節は書きかけです。この節を編集してくれる方を心からお待ちしています。

脚注 編集

  1. ^ 1.0 1.1 HTML Living Standard::§4.1.1 The html element
  2. ^ 2.0 2.1 HTML Living Standard::§4.2.1 The head element
  3. ^ 3.0 3.1 HTML Living Standard::§4.3.1 The body element
  4. ^ HTML Living Standard::§4.4.1 The p element