注意不要让语义和结构混淆.存在HTML元素,主要用于表达结构.语义学就是赋予结构意义.虽然在某些HTML标记中存在一些语义含义,但它具有非常通用的含义.所以我的答案是按照以下方式打破的:
语义
为什么通过表单表达语义是很重要的?标记应该由标准浏览器以外的客户端使用吗?这是一个特殊的用例吗?
如果您需要通过使用适当的类和ID来装饰结构标记,那么您需要为表单的元素注入语义 – 无论您使用哪种元素类型,您都不会从表单中的HTML元素中获得任何语义含义.分组/分开您的输入.
结构体
>如果您只是想提供输入的视觉分离并希望使用尽可能少的标记,那么请使用< br />输入后的标签.
>如果要在结构上将输入分组到其标签,请使用< div>,< ul>,< ol>或< dl> – 所有这些标签都可以与其他标签一样实现这一目标.
>如果在结构上暗示表单元素作为一个集合在一起很重要,那么不要使用< div>表示清晰度或分离度的元素.列表元素表示不同的子项是一个集合,并且像@bookcasey在他的评论中所说的那样,在大多数情况下,表单是逻辑上属于一起的输入列表.
那是我的2c.
对于它的价值,如果不能使用CSS,我会使用< ul> (在这种情况下,如果顺序很重要,则为< ol>).当我有CSS时,我使用< dl>这给了我更多的风格控制.
更新:
在回答Alohci的论点时,我正在改变我对不使用< div>的立场.元素.通过将它们包装在表单或字段集中,它们在逻辑上已经组合在一起 – 这与使用适当的类(即< div class =“field”>如Alohci在评论中所建议的)一起将提供结构和适当的语义含义.