Html 为什么表单标记中不允许直接使用输入标记?
我刚刚在网站上读到以下内容: 在HTML5之前,非块级元素(如Html 为什么表单标记中不允许直接使用输入标记?,html,w3c,Html,W3c,我刚刚在网站上读到以下内容: 在HTML5之前,非块级元素(如)在标记中不直接有效 我从来没有听说过这样的事情,我看过的每一个基本的HTML教程似乎都可以将输入标记直接放在表单标记中。所以我的问题有三个部分: 上述说法合法吗 为什么会这样?(这仅仅是一个疏忽,还是HTML规范的创建者试图通过创建此规则来防止特定问题?) 使用输入构建表单的推荐方法是什么?(我们是否应该直接在表单标记内创建一个div或一个表?) 首先,我想说的是,HTML教程教你做错事情并不奇怪——HTML实际上是为接受任何和每
)在
标记中不直接有效
我从来没有听说过这样的事情,我看过的每一个基本的HTML教程似乎都可以将输入标记直接放在表单标记中。所以我的问题有三个部分:
- 上述说法合法吗
- 为什么会这样?(这仅仅是一个疏忽,还是HTML规范的创建者试图通过创建此规则来防止特定问题?)
- 使用输入构建表单的推荐方法是什么?(我们是否应该直接在表单标记内创建一个div或一个表?)
中放置非块级元素一样。块级元素是其他元素的容器
一个div,一个table–我认为即使是一个
也能做到这一点。上述说法是正确的。在HTML中,标记不是标记的有效元素。为了使此验证生效,您需要使用或将标记括起来。这将在下面演示
<form action="/" method="post">
<fieldset>
Field: <input type="text" name="field" />
<br />
<input type="submit" value="Submit" />
</fieldset>
</form>
字段:
这是标准的学究
- 就标准而言,该语句是合法的:在HTML4.01中,指定它只能包含块元素或
。就世界上所有浏览器所允许的范围而言,这是很好的
<> Li >我只能猜测他们认为<代码> <代码>根本不是一个布局标签,他们希望所有内联元素都包含在块元素中。
- 是的,您应该在
、
、
中放置一个
,或其他一些块表示元素
根据HTML4.01规范(特别是),这在技术上是正确的。但是,我不知道有哪种web浏览器会给您带来问题。是的,表单元素的直接子元素必须是块级元素。请看这里:规范中说“表单元素充当控件的容器”和“表单除了表单控件外还可以包含文本和标记(段落、列表等)”,这对我来说太奇怪了,但是他们不允许它直接包含控件。