嵌套的字段集

Kam*_*šík 12 html semantics

编辑:Downvotes迫使我重新提出这个问题.

使用字段集表示子部分在语义上是否正确?

= Basic Info =
   First Name: ________
    Last Name: ________

= Address =
Business Name: ________
      Streeet: ________
         City: ________
Run Code Online (Sandbox Code Playgroud)

你如何处理嵌套的表单部分?有没有更好的方法,默认情况下看起来也没问题?

Kar*_*oos 20

是的,它在语义上是正确的.

  • 你对此有引用吗? (11认同)
  • http://dev.w3.org/html5/spec-preview/the-fieldset-element.html最底部有一个嵌套示例. (6认同)
  • w3链接的重要部分:"你也可以嵌套字段集.这是一个例子(...),这样做". (5认同)

Flo*_*ima 16

你基本上问了两个问题:

如果它在语义上是正确的你的例子,并且你可以嵌套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准备就绪并在所有浏览器中正确实现之前,这个问题仍将继续讨论.

  • 这个答案在我看来是错误的 - 可能是因为问题是在这个答案之后编辑的?嵌套的字段集在语法上是正确的 - 即规范允许它 - 和语义正确,即它很有意义并且符合规范的意图. (5认同)

elo*_*esp 6

是的,规范中有一个嵌套的例子。

<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>
Run Code Online (Sandbox Code Playgroud)