编辑:Downvotes迫使我重新提出这个问题。
使用字段集表示子部分在语义上是否正确?
= Basic Info =
First Name: ________
Last Name: ________
= Address =
Business Name: ________
Streeet: ________
City: ________
你如何处理嵌套的表单部分?有没有更好的方法,默认情况下看起来也没问题?
是的,它在语义上是正确的。
你基本上问了两个问题:
如果它在语义上是正确的你的例子,并且你可以嵌套fielset元素。
这里给出的一些答案是错误的。
它在语法上是正确的,但在语义上不正确,您可以嵌套fieldset元素。
由于形式不是表象元素,因此它在语义上不正确。表用于显示行和列中的信息,而您显然没有这样做。桌子不是制作好形式的道具,这就是你使用它的方式。
接下来可能会有一些建议。
参考HTML5标准,我引用了提案文档:“表单的每个部分都被视为一个段落,通常使用p元素与其他部分分开。”
http://dev.w3.org/html5/spec/single-page.htm第4.10节
http://dev.w3.org/html5/spec-LC/forms.html
应该回答嵌套问题。
我想这个问题来自于知道如何分割表单内容的愿望。答案是使用字段集。表单本身有一个含义,所以“是”,它将是一个包含所有表单元素的字段集(并且可能被禁用)。
回到你的例子,你将有一个“注册”字段集和注册的部分按嵌套字段集分组,因为你的例子中的一个这样的部分是“地址”。
制作表单的“更好”方式......这取决于我认为这是另一个问题,在HTML5准备就绪并在所有浏览器中正确实施之前,这个问题仍将继续讨论。
是的,有一个嵌套in the specs的例子。
<fieldset name="clubfields" disabled> <legend> <label> <input type=checkbox name=club onchange="form.clubfields.disabled = !checked"> Use Club Card </label> </legend> <p><label>Name on card: <input name=clubname required></label></p> <fieldset name="numfields"> <legend> <label> <input type=radio checked name=clubtype onchange="form.numfields.disabled = !checked"> My card has numbers on it </label> </legend> <p><label>Card number: <input name=clubnum required pattern="[-0-9]+"></label></p> </fieldset> <fieldset name="letfields" disabled> <legend> <label> <input type=radio name=clubtype onchange="form.letfields.disabled = !checked"> My card has letters on it </label> </legend> <p><label>Card code: <input name=clublet required pattern="[A-Za-z]+"></label></p> </fieldset> </fieldset>