以下面的XHTML片段为例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>A webpage</title>
</head>
<body>
<p>
<form action="something.php" method="get">
<input type="submit" value="Hello"/>
</form>
</p>
</body>
</html>
树应该是有效的,但是这不能在浏览器中正确解析。
发布于 2009-06-20 17:18:53
查看在http://validator.w3.org中尝试执行此操作时收到的错误消息
除了警告您没有指定字符编码(因此假定使用UTF-8)之外,主要的错误是<p>
不允许包含非内联内容。您可以完全删除<p>
和</p>
,也可以在<form>
中移动它们。
至于“为什么”,这是因为它是在定义什么是有效的XHTML和什么是无效的XHTML的模式中定义的。如果你查看this section of the XHTML definition,你会发现<p>
只被允许包含文本或“内联”(而不是“块”)标签。然而,被算作“块”内容,而不是“内联”内容。
换句话说,表单可以包含段落,但段落不能包含表单。
发布于 2009-06-20 17:18:15
尝试使用W3C Markup Validator,它将告诉您大多数(X)HTML和CSS文档的无效内容。
发布于 2009-06-20 17:17:29
你不能把form放在段落里面。像这样写:
<body>
<form action="something.php" method="get">
<p>
<input type="submit" value="Hello"/>
</p>
</form>
</body>
https://stackoverflow.com/questions/1022041
复制相似问题