The grammar is a composite of the HTML 2.0 standard tags and special extensions to the language as enabled by the latest versions of NCSA Mosaic, Netscape Communication's Netscape Navigator, and Microsoft's Internet Explorer.
The rules are in alphabetical order. The starting rule for an entire document is named html_document.
a_tag |
::= |
<a> |
{a_content }0 |
||
</a> |
||
a_content |
::= |
heading |
| |
text |
|
address_tag |
::= |
<address> |
{address_content }0 |
||
</address> |
||
address_content |
::= |
p_tag |
| |
text |
|
applet_content |
::= |
{<param>}0 |
body_content |
||
applet_tag |
::= |
<applet> |
applet_content |
||
</applet> |
||
a_content may not contain a_tags; you may not nest <a> tags within other <a> tags. | ||
b_tag |
::= |
<b> text </b> |
basefont_tag |
::= |
<basefont> |
body_content |
||
</basefont> |
||
big_tag |
::= |
<big> text</big> |
blink_tag |
::= |
<blink> text</blink> |
block |
::= |
{block_content }0 |
block_content |
::= |
<isindex> |
| |
basefont_tag |
|
| |
blockquote_tag |
|
| |
center_tag |
|
| |
dir_tag |
|
| |
div_tag |
|
| |
dl_tag |
|
| |
form_tag |
|
| |
listing_tag |
|
| |
menu_tag |
|
| |
multicol_tag |
|
| |
nobr_tag |
|
| |
ol_tag |
|
| |
p_tag |
|
| |
pre_tag |
|
| |
table_tag |
|
| |
ul_tag |
|
| |
xmp_tag |
|
blockquote_tag |
::= |
<blockquote> |
body_content |
||
</blockquote> |
||
body_content |
::= |
<bgsound> |
| |
<hr> |
|
| |
address_tag |
|
| |
block |
|
| |
heading |
|
| |
layer_tag |
|
| |
map_tag |
|
| |
marquee_tag |
|
| |
text |
|
body_tag |
::= |
<body> |
{body_content }0 |
||
</body> |
||
caption_tag |
::= |
<caption> |
body_content |
||
</caption> |
||
center_tag |
::= |
<center> |
body_content |
||
</center> |
||
cite_tag |
::= |
<cite> text </cite> |
code_tag |
::= |
<code> text </code> |
colgroup_content |
::= |
{<col>}0 |
colgroup_tag |
::= |
<colgroup> |
colgroup_content |
||
content_style |
::= |
cite_tag |
| |
code_tag |
|
| |
dfn_tag |
|
| |
em_tag |
|
| |
kbd_tag |
|
| |
samp_tag |
|
| |
strong_tag |
|
| |
var_tag |
|
dd_tag |
::= |
<dd> |
flow |
||
</dd> |
||
dfn_tag |
::= |
<dfn> text </dfn> |
dir_tag |
::= |
<dir> |
{ li_tag } |
||
</dir> |
||
div_tag |
::= |
<div> |
body_content |
||
</div> |
||
dl_content |
::= |
dt_tag dd_tag |
The li_tag within the dir_tag may not contain any element found in a block. | ||
dl_tag |
::= |
<dl> |
{dl_content } |
||
</dl> |
||
dt_tag |
::= |
<dt> |
text |
||
</dt> |
||
em_tag |
::= |
<em> text </em> |
flow |
::= |
{flow_content }0 |
flow_content |
::= |
block |
| |
text |
|
font_tag |
::= |
<font> style_text </font> |
form_content |
::= |
<input> |
| |
<keygen> |
|
| |
body_content |
|
| |
select_tag |
|
| |
textarea_tag |
|
form_tag |
::= |
<form> |
{form_content }0 |
||
</form> |
||
frameset_content |
::= |
<frame> |
| |
noframes_tag |
|
frameset_tag |
::= |
<frameset> |
{frameset_content }0 |
||
</frameset> |
||
h1_tag |
::= |
<h1> text </h1> |
h2_tag |
::= |
<h2> text </h2> |
h3_tag |
::= |
<h3> text </h3> |
h4_tag |
::= |
<h4> text </h4> |
h5_tag |
::= |
<h5> text </h5> |
h6_tag |
::= |
<h6> text </h6> |
head_content |
::= |
<base> |
| |
<isindex> |
|
| |
<link> |
|
| |
<meta> |
|
| |
<nextid> |
|
form_content may not contain form_tags; you may not nest one <form> within another <form>. | ||
| |
style_tag |
|
| |
title_tag |
|
head_tag |
::= |
<head> |
{head_content }0 |
||
</head> |
||
heading |
::= |
h1_tag |
| |
h2_tag |
|
| |
h3_tag |
|
| |
h4_tag |
|
| |
h5_tag |
|
| |
h6_tag |
|
html_content |
::= |
head_tag body_tag |
| |
head_tag frameset_tag |
|
html_document |
::= |
html_tag |
html_tag |
::= |
<html> |
html_content |
||
</html> |
||
i_tag |
::= |
<i> text </i> |
ilayer_tag |
::= |
<ilayer> |
body_content |
||
</ilayer> |
||
kbd_tag |
::= |
<kbd> text </kbd> |
layer_tag |
::= |
<layer> |
body_content |
||
</layer> |
||
li_tag |
::= |
<li> |
flow |
||
</li> |
||
listing_tag |
::= |
<listing> |
literal_text |
||
</listing> |
||
map_content |
::= |
{<area>}0 |
map_tag |
::= |
<map> |
map_content |
||
</map> |
||
marquee_tag |
::= |
<marquee> |
style_text |
||
</marquee> |
||
menu_tag |
::= |
<menu> |
{li_tag }0 |
||
</menu> |
||
multicol_tag |
::= |
<multicol> |
body_content |
||
</multicol> |
||
nobr_tag |
::= |
<nobr> text </nobr> |
noembed_tag |
::= |
<noembed> text </noembed> |
noframes_tag |
::= |
<noframes> |
{body_content }0 |
||
</noframes> |
||
noscript_tag |
::= |
<noscript> text </noscript> |
object_content |
::= |
{<param>}0 |
body_content |
||
object_tag |
::= |
<object> |
object_content |
||
</object> |
||
ol_tag |
::= |
<ol> |
{li_tag } |
||
</ol> |
||
option_tag |
::= |
<option> |
plain_text |
||
</option> |
||
p_tag |
::= |
<p> |
text |
||
</p> |
||
physical_style |
::= |
b_tag |
| |
big_tag |
|
| |
blink_tag |
|
| |
font_tag |
|
| |
i_tag |
|
| |
s_tag |
|
| |
small_tag |
|
| |
span_tag |
|
The li_tag within the menu_tag may not contain any element found in a block. | ||
| |
strike_tag |
|
| |
sub_tag |
|
| |
sup_tag |
|
| |
tt_tag |
|
| |
u_tag |
|
pre_content |
::= |
<br> |
| |
<hr> |
|
| |
a_tag |
|
| |
style_text |
|
pre_tag |
::= |
<pre> |
{pre_content }0 |
||
</pre> |
||
s_tag |
::= |
<s> text </s> |
samp_tag |
::= |
<samp> text </samp> |
script_tag |
::= |
<script> plain_text </script> |
select_tag |
::= |
<select> |
{option_tag } |
||
</select> |
||
server_tag |
::= |
<server> plain_text </server> |
small_tag |
::= |
<small> text </small> |
span_tag |
::= |
<span> text </span> |
strike_tag |
::= |
<strike> text </strike> |
strong_tag |
::= |
<strong> text </strong> |
style_tag |
::= |
<style> plain_text </style> |
sub_tag |
::= |
<sub> text </sub> |
sup_tag |
::= |
<sup> text </sup> |
table_cell |
::= |
td_tag |
| |
th_tag |
|
table_content |
::= |
<tbody> |
| |
<tfoot> |
|
| |
<thead> |
|
| |
tr_tag |
|
A script_tag may be placed anywhere within an HTML document, without regard to syntactic rules.A server_tag may be placed anywhere within an HTML document, without regard to syntactic rules. | ||
table_tag |
::= |
<table> |
[caption_tag ] |
||
{colgroup_tag }0 |
||
{table_content }0 |
||
</table> |
||
td_tag |
::= |
<td> |
body_content |
||
</td> |
||
text |
::= |
{text_content }0 |
text_content |
::= |
<br> |
| |
<embed> |
|
| |
<iframe> |
|
| |
<img> |
|
| |
<spacer> |
|
| |
<wbr> |
|
| |
a_tag |
|
| |
applet_tag |
|
| |
content_style |
|
| |
ilayer_tag |
|
| |
noembed_tag |
|
| |
noscript_tag |
|
| |
object_tag |
|
| |
plain_text |
|
| |
physical_style |
|
textarea_tag |
::= |
<textarea> plain_text </textarea> |
th_tag |
::= |
<th> |
body_content |
||
</th> |
||
title_tag |
::= |
<title> plain_text </title> |
tr_tag |
::= |
<tr> |
{table_cell }0 |
||
</tr> |
||
tt_tag |
::= |
<tt> text </tt> |
u_tag |
::= |
<u> text </u> |
ul_tag |
::= |
<ul> |
{li_tag } |
||
</ul> |
||
var_tag |
::= |
<var> text </var> |
xmp_tag |
::= |
<xmp> |
literal_text |
||
</xmp> |