当我需要在一个表单中封装一些相距较远的字段时,我经常遇到问题,而在其他表单中,它们之间的字段。或者以表格形式封装表格的前两行,以其他形式封装其他两行,依此类推。但当然,这在标准实践中是不允许的。我的问题是为什么像form(和其他非显示标签)这样的标签必须被视为“显示”标签,并且它们也被限制在某些地方使用。有没有真正的理由。
PS:我特别想到的形式,我在一个地方定义了我想要的多个表单,并将它们的引用(例如id或名称)提供给相应的字段。那样形式标签不必以某种方式干扰字段的位置?答案 0 :(得分:1)
<form>
如何成为非显示元素?您可以在其上应用各种CSS,它们会显示出来。只是他们通常没有默认的浏览器样式。将<div>
中的元素包装起来并对其进行样式设置是一个新手错误,当它们内部的唯一内容是单个元素时。
<div class="myform"><form>...</form></div>
<form><div class="myform">...</div></form>
两者同样多余。只需直接设置原始元素的样式。
<form class="myform">...</form>
现在,在你跳起来之前:我不是说你在做那件事。只是一般性建议。
关于限制使用:这可能会使实现者(浏览器创建者)和向后兼容性变得更容易。
答案 1 :(得分:1)
询问HTML行为的“为什么”问题通常不是一项有用的活动。通常答案是“因为其中一个浏览器最初是这样做的,而且出于向后兼容的原因我们坚持使用它。”
另请注意@DanMan关于<form>
的可显示性的内容。
但是,您在一个地方声明表单然后通过id与控件关联的控件的描述与HTML5 form
attribute所做的非常相似。唯一的区别是控件引用表单,而不是引用控件的表单。我们现在需要做的就是等待浏览器中的实现。