HTML 4.01严格标准

时间:2010-08-12 20:35:53

标签: 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>

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

  

第10行,第40栏:文件类型   这里不允许元素“INPUT”;   缺少“P”,“H1”,“H2”,“H3”之一,   “H4”,“H5”,“H6”,“PRE”,“DIV”,   “ADDRESS”开始标记

我认为没有任何问题。有什么想法吗?

2 个答案:

答案 0 :(得分:6)

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

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- interactive form -->

因此,它可以有%blockFORM)或SCRIPT元素除外。

%block定义为:

<!ENTITY % block
 "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
  BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">

其余的:

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

<!ENTITY % list "UL | OL">

<!ENTITY % preformatted "PRE">

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

答案 1 :(得分:1)

稍微玩了一下 - 在“输入”标签周围加上“div”标签:

<div>
    <input type="text" name="testfield">
</div>