HTML5: Where is the spec for which end tags are forbidden?

♀尐吖头ヾ 提交于 2019-12-07 07:02:08

问题


In HTML 4.01 certain end tags are forbidden, that means it in not valid markup to have them, e.g.:

Invalid                     Valid
===================         =================
<BR/>                       <BR>
<BR></BR>      

<IMG src="..."/>            <IMG src="...">
<IMG ...></IMG>

<INPUT ... />               <INPUT ...>
<INPUT ...></INPUT>

In the HTML 4.01 specification the indication of an end tag being optional or forbidden is nicely summarized in the index of elements:

Name        Start Tag       End Tag
AREA                        F
BASE                        F
BASEFONT                    F
BODY        O               O
BR                          F
COL                         F
COLGROUP                    O
DD                          O
DT                          O
FRAME                       F
HEAD        O               O
HR                          F
HTML        O               O
IMG                         F
INPUT                       F
ISINDEX                     F
LI                          O
LINK                        F
META                        F
OPTION                      O
P                           O
PARAM                       F
TBODY       O               O
TD                          O
TFOOT                       O
TH                          O
THEAD                       O
TR                          O

Where is the HTML 5 equivalent of indicating which end tags are:

  • required
  • optional (implicit)
  • forbidden

回答1:


When and how optional end tags should behave, in HTML5 spec:

http://www.w3.org/TR/html5/syntax.html#void-elements

8.1.2 Elements

Void elements only have a start tag; end tags must not be specified for void elements.

Void Elements

  • area
  • base
  • br
  • col
  • command
  • embed
  • hr
  • img
  • input
  • keygen
  • link
  • meta
  • param
  • source
  • track
  • wbr

A more concise form:

Element Type    Start Tag  End Tag
=============== =========  =========
Normal          -          O (some)
   html         O*         O*
   head         O*         O*
   body         -          O*
   li           -          O*
   dt           -          O*
   dd           -          O*
   p            -          O*
   rt           -          O*       
   rp           -          O*
   optgroup     -          O*
   option       -          O*
   colgroup     O*         O*
   thead        -          O*
   tbody        -          O*
   tfoot        -          O*
   tr           -          O*
   td           -          O*
   th           -          O*
   otherwise    -          -
Raw text        -          -
   script
   style
RCDATA          -          -
   textarea
   title
Void            -          F
   area
   base
   br
   col
   command
   embed
   hr
   img
   input
   keygen       
   link
   meta
   param
   source
   track
   wbr
Foreign         -          -          
   MathML
   SVG


来源:https://stackoverflow.com/questions/9434208/html5-where-is-the-spec-for-which-end-tags-are-forbidden

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!