以这个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>
该树应该有效,但是在浏览器中无法正确解析。
最佳答案
查看当您尝试使用http://validator.w3.org时收到的错误消息
除了警告您未指定字符编码(因此假设它是UTF-8)外,主要错误是<p>
不允许包含非内联内容。您可以完全删除<p>
和</p>
,也可以将它们移到<form>
中。
至于“为什么”,是因为这就是在定义有效XHTML的架构中定义的方式。如果您查看this section of the XHTML definition,您会看到<p>
仅允许包含文本或“行内”(而不是“阻止”)标签。但是, <form>
算作“阻止”内容,而不算作“内联”内容。
换句话说,表单可以包含段落,但是段落不能包含表格。
关于xhtml - 为什么嵌套在p中的表单不验证为XHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1022041/