5708


`<div>`タグは終了タグが必要

[code]

    <div>あいうえお</div>   これはＯＫ
    <div>あいうえお         これはＮＧ
    
[/code]

`<br>`タグは終了タグを書いてはいけない

[code]

    <br>        これはＯＫ
    <br></br>   これはＮＧ
    
[/code]

`<li>`タグは終了タグを省略できる

[code]

    <ul>
      <li>あいうえお</li>   これはＯＫ
      <li>あいうえお        これもＯＫ
    </ul>
    
[/code]

どのタグが終了タグ必須で、どのタグが終了タグ不可、という仕様を確認できる資料を探しています。  
HTML4やHTML5、XHTMLなどで微妙に仕様が異なる点もあると思いますが、HTML5だけの仕様でも構いません。  
一覧のような形でまとめて確認できるものがあれば教えてください。


CC BY-SA 3.0
2015-02-01T11:44:42.080
5698
2015-02-02T12:54:40.987
2015-02-01T11:50:37.097
3925
3925
question
html html5 xhtml
HTML要素の終了タグの仕様を確認したい


HTML4以前限定ですが、[DOCTYPE宣言で指定されているdtd](http://www.w3.org/TR/html4/sgml/dtd.html)の`<!ELEMENT
HOGE `に続く2つの値が開始、終了タグの省略可否を表し、`-`であれば省略不可、`O`(OmittableのO)であれば省略可能となります。

> <!ELEMENT BR - O EMPTY -- forced line break -->
>
> <!ELEMENT DIV - - (%flow;)* -- generic language/style container -->


CC BY-SA 3.0
2015-02-01T12:03:37.337
5700
2015-02-01T12:10:50.260
2020-06-17T08:14:45.997
-1
5750
5698
answer


HTML5に関してですが、[W3Cの勧告](http://www.w3.org/TR/html5/)を見ると[Elementsの章](http://www.w3.org/TR/html5/syntax.html#elements-0)に以下のように書かれています。

  * 通常要素で終了タグを省略できるとなっていない物は省略できない（The start and end tags of certain normal elements can be omitted, as described below in the section on optional tags. Those that cannot be omitted must not be omitted.）。省略できる物の一覧は[コチラ](http://www.w3.org/TR/html5/syntax.html#syntax-tag-omission)。
  * [空要素](http://www.w3.org/TR/html5/syntax.html#void-elements)は終了タグを付けてはダメ（Void elements only have a start tag; end tags must  
not be specified.）。


CC BY-SA 3.0
2015-02-01T13:23:33.197
5708
2015-02-01T13:23:33.197
33
5698
answer


<http://qiita.com/labocho/items/54fd70c73ced35c8ba49>

こんなのどうでしょう？  
HTML5限定ではありますが、事足りるかと


CC BY-SA 3.0
2015-02-01T13:55:26.043
5709
2015-02-01T13:55:26.043
380
5698
answer


先に回答が出ていますが、詳しい解説および自分の復習もかねて、まとめを。  
概ね、省略しても文章構造が理解できる(つまり、普通は入れ子にしないだろう・普通はこの次にこれを入れるだろうというような組み合わせ)のものが終了タグの省略が可能だったりします。  
・・とはいえ、おおよそのものが「スタートタグ・エンドタグ双方の省略が不可」です。

以下タグについては、その下記条件を満たすことで省略が可能です。

**開始タグ省略可能**

  * HTML  
_最初の文がコメントでない場合_

  * HEAD  
_空要素の場合 または 最初の文が他の要素である場合_

  * BODY  
_空要素の場合 または 直後が空白文字またはコメント または meta, link, script, style templateの各ではない場合。_

  * COLGROUP  
_最初の要素がcol要素かつ、直前に終了タグが省略された別のcolgroupが存在せずかつ、空要素でない場合_

  * TBODY  
_最初の要素がtrでかつ、終了タグが省略された別のtbody, thead, tfootが直前に存在せずかつ、唐様粗でない場合_

**終了タグ省略可能**

  * HTML  
_直後の文がコメントでない場合_

  * HEAD  
_直後が空白文字またはコメントではない場合_

  * BODY  
_直後が空白文字ではない場合_

  * LI  
_他のLI要素が後についており、親要素に追加コンテンツがない場合_

  * DT  
_他のDTまたはDDの要素が後についてる場合_

  * DD  
_他のDD要素またはDT要素が後についており、親要素に追加コンテンツがない場合_

  * P  
_address, article, aside, blockquote, div, dl, fieldset, footer, form, h1, h2,
h3, h4, h5, h6, header, hgroup, hr, main, nav, ol, p, pre, section, table, または
ulの直後に存在する場合 または 親要素に追加コンテンツがない場合で親要素がaでない場合_

  * RB, RT, RTC, RP  
_他のrb, rt, rtc, rp要素が直後に存在する場合 または 親要素に追加コンテンツがない場合_

  * OPTIONGROUP  
_他のoptiongroup要素が直後に存在する場合 または 親要素に追加コンテンツがない場合_

  * OPTION  
_他のoptiongroup, option要素が直後に存在する場合 または 親要素に追加コンテンツがない場合_

  * COLGROUP  
_直後が空白文字またはコメントではない場合_

  * THREAD
  * tbody or tfootが直後に存在する場合*
  * TBODY  
_他のtbody, tfootが直後に存在する場合 または 親要素に追加コンテンツがない場合_

  * TFOOT  
_他のtbodyの直後に存在する場合 または 親要素に追加コンテンツがない場合_

  * TR  
_別のtrが直後に存在する場合 または 親要素に追加コンテンツがない場合_

  * TD, TH  
_別のtd, th要素が直後に存在する場合 または 親要素に追加コンテンツがない場合。_

ただし、(これら全ての場合において、)属性を持つ開始タグは省略できない

**終了タグを必ず省略**

  * 空要素として定義されているもの  
  

    * area, base, br, col, embed, hr, img, input, keygen, link, meta, param, source, track, wbr
  


CC BY-SA 3.0
2015-02-02T11:41:14.610
5784
2015-02-02T12:54:40.987
2015-02-02T12:54:40.987
905
905
5698
answer