HTML 4.01严格标准

blc*_*llo 2 html

我刚刚通过w3c验证服务(http://validator.w3.org/check)运行了这个简单的代码.这是我正在运行的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd"
    >
<html lang="en">
<head>
    <title><!-- Insert your title here --></title>
</head>
<body>
<form name="testform" action="/" method="post">
    <input type="text" name="testfield">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我在输入字段上收到以下错误:

第10行,第40列:文档类型不允许元素"INPUT"; 缺少"P","H1","H2","H3","H4","H5","H6","PRE","DIV","ADDRESS"开始标记之一

我没有看到它有什么问题.有任何想法吗?

Ode*_*ded 6

问题在于如何FORM在DTD中定义元素:

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->
Run Code Online (Sandbox Code Playgroud)

因此,它可以有%block(除了FORM)或SCRIPT元素.

%block定义为:

<!ENTITY % block
 "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
  BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
Run Code Online (Sandbox Code Playgroud)

其余的:

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

<!ENTITY % list "UL | OL">

<!ENTITY % preformatted "PRE">
Run Code Online (Sandbox Code Playgroud)

由于您的表单不包含任何直接子项,因此页面验证失败.