我刚刚在http://w3fools.com/#html_forms阅读了以下内容:
在HTML5之前,非块级元素(例如
<input>
)在<form>
标记内无效。
我从来没有听说过这些内容,我看到的每个基本HTML教程似乎都可以将输入标签直接放在表单标签中。所以我的问题有三个部分:
答案 0 :(得分:9)
这是标准的迂腐。
<form>
指定它可能只包含块元素或<script>
。至于世界上每个浏览器都允许的,没关系。<form>
根本不是布局标签,他们希望所有内联元素都包含在一个块元素中。<div>
内放置<table>
,<p>
,<form>
或其他一些块表示元素。答案 1 :(得分:5)
以上陈述属实。在HTML中&lt; input&gt; tag不是&lt; form&gt;的有效元素标签。为了进行验证,您需要将&lt; input&gt;括起来。标记为&lt; fieldset&gt;或者&lt; div&gt;。这将在下面进行说明。
<form action="/" method="post">
<fieldset>
Field: <input type="text" name="field" />
<br />
<input type="submit" value="Submit" />
</fieldset>
</form>
答案 2 :(得分:1)
首先,我想提一下,HTML教程教你做错事并不奇怪 - HTML实际上是为接受任何一种做事方式而设计的。你可以保留未封闭的标签,你可以不恰当地嵌套它们等等,这是我个人使用XHTML的原因之一。
这种说法似乎是正确的,但由于HTML的设计方式,在实践中并不重要。 XHTML可能禁止这样做。
表单实际上不是任何形式的容器。似乎HTML规范的创建者喜欢块级元素之类的东西,你应该将所有内容都包含在内。这只是我对它的看法,但据我所知,如果没有适当的容器,就不应该使用非块级元素。
这就像你不应该将非块级元素放在<blockquote>
中。块级元素是其他元素的容器。
一个div,一个表 - 我认为即使是<p>
也可以做到这一点。
答案 3 :(得分:0)
嗯,根据HTML 4.01规范(特别是section 17.3),这在技术上是正确的。但是,我不知道任何实际上会给你带来问题的网页浏览器。