0

表单标签不应该存在于头部标签中是否有充分的理由?

我正在查看此http://www.w3.org/html/wg/drafts/html/master/forms.html#the-form-element 但我找不到与此问题相关的任何内容。

这对我有用:

<head runat="server">
<title></title>
<form id="form1" runat="server">
   <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
</form>
    <link rel="stylesheet" href="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.css" />

    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

</head>

提前致谢。

4

2 回答 2

3

如果您在 IE 以外的浏览器中查看http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2014(这里有一个非常奇怪的错误),您会看到您的表单元素实际上不在 head 元素内。当解析器看到<form>标签时,它会自动关闭<head>元素,创建<body>元素并将<form>元素和所有后续元素放入该<body>元素中。

因为这种行为是向后兼容现有网页所必需的,所以不能更改规范以允许<form>head 中的元素,即使这样做有很好的用例。

于 2012-12-13T01:22:56.103 回答
1

用于显示的 HTML 属于<body>标记。

有些浏览器仍然会显示一些放在标签中的<head>标签,但这不是它所属的地方,如果你把它放在那里,你会要求互操作性问题。

在您引用的规范链接中,它说<form>标签去flow content预期的地方。如果单击flow content,它指的是文档正文中使用的元素。正文是<body>标签中的内容。

于 2012-12-12T23:29:45.003 回答