HTML中的Name vs Id属性

Dar*_*htA 27 html

使用<div id="here" ...而不是使用是否有任何优势<div name="here" ...

它们都被称为#here?

Pra*_*tik 42

以下是两者之间的一些区别:

  1. name从未成为div元素属性.
  2. 表单控件上使用的名称(input,textarea,select,button元素)与命名元素上的id属性完全不同.在这种情况下,name属性与发送到服务器时数据的标签方式有关,并且多个元素可以共享相同的名称.另一方面,id属性用于标识脚本,样式或寻址的一个唯一元素.
  3. 除了表单控件之外的其他元素上使用name属性在HTML4.01中与id的相同,但是它允许比id属性更宽泛的字符集,并且不以完全相同的方式控制.由于这种不明确性,W3C决定弃用/删除这些元素的name属性,转而支持XHTML中的unambigous id属性.这也与XML的另一个细节有关 - 但是只有任何元素的一个属性可以是ID类型,如果它们让名称保留在元素上但纠正了歧义问题,则不会是这种情况.

  4. 由于name属性在这两组元素上的工作方式不同,因此最好删除它们.

简而言之,对于向后兼容性,如果使用HTML4.01或XHTML1.0 Transitional,则应对除表单控件之外的所有元素使用name和id属性(均设置为相同值).如果您使用XHTML1.0 Strict或更高版本,则应仅使用id.对于表单控件,您应该使用名称来表示您希望表单发送到服务器以及DOM0访问,并且仅使用id进行样式设置,DOM1-3访问或解决原因


cra*_*man 5

这取决于您将在哪里使用它们。

通常,id一个元素是唯一的,而多个元素可以共享相同的name.

Id 被引用为#here,name 被引用为[name=here]