为什么<form>是一个块元素?</form>

时间:2012-09-18 04:42:49

标签: html forms

IMO的<form>元素的目的是语义不呈现 - 该元素用于定义一个区域,其中包含可以发送到服务器的元素。

为什么然后,浏览器(以及我在规范中假设)在用户代理样式表中指定display:block?当然,如果你想让表单成为一个块,你可以将它包装在div元素中吗?

通常,我只是将表单{display:inline}放入我的css中以覆盖它。不过,我想知道是否有充分的理由将<form>默认显示为一个块,或者是否因为遗留原因而一直保持这种状态。

3 个答案:

答案 0 :(得分:14)

我认为这是因为<form>通常会包含其他块级元素(div用于结构,或者虽然我在思考时感到畏缩,表格有助于组织表单字段等)。并且具有包含块元素的内联元素虽然完全可能,但在语义上是有问题的。

我完全赞同你关于<form>没有表现的观点,但同时我认为它是一个块元素,考虑到标签的使用方式。

答案 1 :(得分:2)

HTML 3.2<FORM>元素定义为块级元素。浏览器关于此元素的当前行为当然是为了向后兼容。

答案 2 :(得分:1)

<form>意味着语义和表现。它本质上是语义的,但也禁止将一种形式嵌入到另一种形式中,这意味着它是所有内容(表单控件和其他块/内联内容)的明确容器。此外,内联节点不能包含块级节点,至少不符合规范,默认情况下会限制<form>标记。