我何时应该使用标准div的表格



使用<forms>而不是<div>是什么有效的方案?我从来没有自己使用过,但是人们确实使用了它。

除了语义论证外,我是否缺少表格所提供的东西?

对于类似形式的事物, <form>是标准。

div没有语义含义。基本上,当文档中的某些内容无法分类任何其他方式时,它基本上是使用的元素,例如实现所需布局所需的附加元素 - 尽管目标是避免这种情况。过去,由于语义元素的可用元素较少。

表单确实具有语义含义,应用作一种形式 - 接受用户输入的区域。这是W3文档的报价:(SRC ..)

HTML表单是包含正常内容的文档的一部分, 标记,称为控件的特殊元素(复选框,无线电按钮, 菜单等),并在这些控件上标记。用户通常"完成" 通过修改其控件(输入文本,选择菜单项, 等),在将表格提交给代理进行处理之前(例如, Web服务器,邮件服务器等)

表单还具有默认行为,例如按钮"提交"表单,该表单将基于actionmethod属性刷新/重定向页面。尽管使用Ajax进行表单提交和禁用该行为更现代,但表单元素仍然是类似形式事物的语义上适当的元素。如果JavaScript被禁用,则表格将退回到标准提交(操作/方法),因此仍使用表格。您还可以使用var myVar = document.forms中的JavaScript访问表单。

它们具有完全不同的目的,您会看到表单(<form> HTML标签阅读更多)是用于输入用户输入的一系列元素(Textfields,textaareas,checkboxes)的容器它可以到服务器,而Divs(<div>阅读更多)是用于组织或风格化的通用元素,当没有其他HTML元素为您的标记提供有意义的选项时,应使用DIVS。

当您拥有一组逻辑表单控件(输入,选择,按钮等)时,请使用表单为:

  • 将它们分组
  • 指定在何处将输入的数据提交到哪种形式

当HTML无法提供适当语义的元素时,请使用DIV创建一组元素和/或文本。

表格通常用于将数据提交到后端-A

<input type=submit /> 

在表单的范围内导致其发布到您在实际表单的方法标签中指定的URL。

来自W3C HTML 5 Spec:

表单元素代表与形式相关的元素的集合,其中一些可以表示可以提交给服务器进行处理的可编辑值。

如果您不使用表单元素包含与形式相关的元素,则应使用不同的元素。如果存在一种用于您要包装的信息类型的目的,请使用divspan根据您将使用CSS进行的格式。

请记住,html是用于您提供的信息,而CSS则用于该信息的呈现和样式。

当然,使用Web框架(如Angular)而不是普通的JavaScript时,存在差异。人们更喜欢语义的人们提出的通常的论点是,形式将使浏览器能够知道网页具有一种形式,该表格由DIV模糊地描述。而且,如果您使用的是香草JS,请使用语义元素。但是,在框架的情况下,它比语义更多。如果您经历了Angular的《英雄之旅》教程,您会在英雄模板中找到此代码:

<div>
  <label for="name">Hero name: </label>
  <input id="name" [(ngModel)]="hero.name" placeholder="name">
</div>

尝试在此处更改DIV形成(以语义上的更好)。您会注意到NGMODEL无法正常工作。即使使用了2条绑定,输入元素和属性英雄似乎也没有关系。仅在使用DIV时,2向绑定起作用。这可能是一个错误,但我的观点是在语义上编写正确的HTML可能并不总是一个好主意。DIV从很长一段时间以来就被使用。每个框架都必须支持它。形式不是这样。

另外,每个块元素均基于Div。因此,如果某些语义块元素打破了您的代码,请使用Div。

最新更新