为什么ID存在?

时间:2011-06-21 03:15:30

标签: html css

您可以使用ID执行任何操作。

那么为什么会有ID属性?

是的,ID是唯一的,但是一个类也可以是唯一的......

6 个答案:

答案 0 :(得分:11)

DOM不仅仅是为了样式元素而存在 - 元素也可以被操作(通常通过Javascript),并且通常按ID选择元素比按类选择更有效。

答案 1 :(得分:8)

首先,来自HTML 4.01 Specification Section 7.5.2

  

id = name

     
    

此属性为元素指定名称。该名称在文档中必须是唯一的。

  
     

class = cdata-list

     
    

此属性为元素指定类名或类名集。可以为任意数量的元素分配相同的类名或名称。多个类名必须用空格字符分隔。

  

我理解你的问题的精神是通过有意选择唯一的类名,你可以模拟id属性给出的功能,可以说使id属性变得多余。好吧,我可以想到至少有一件事可以用 来实现;使用<label>属性将for元素与表单元素相关联。例如:

<label for="firstname">First Name:<label>
<input type="text" id="firstname" name="firstname" value="" />

出于可访问性原因,这是一种很好的做法。如果您将<label for="id">与复选框或单选按钮元素一起使用,则可获得可点击标签的额外奖励。例如:

<label for="male">Male</label> <!-- the word "Male" is clickable -->
<input type="radio" id="male" name="sex" value="male" />
<label for="female">Female</label> <!-- the word "Female" is clickable -->
<input type="radio" id="female" name="sex" value="female" />

答案 2 :(得分:4)

类用于一组类似的元素 id对于元素是唯一的。 如果要更改所有复选框,请使用类。 如果您想对特定复选框执行某些操作,请使用id。

答案 3 :(得分:3)

这篇tizag文章可能会更好地解释它。在HTML中的每个标准中,classid具有不同的功能。例如,id(通常)仅使用一次,以表示唯一元素。 class(通常)用于定义一组元素。

答案 4 :(得分:3)

  

您可以使用ID执行任何操作。

其实没有。如果您为元素提供ID,则它可以是链接的目标(例如,http://www.example.com/page#foo将您带到id="foo"page的元素;现在优先于旧<a name="foo"> {1}}机制。)

  

那么为什么会有ID属性?

因为它们用于完全不同的目的。上面的示例只是可以放置页面上内容的唯一标识符的众多用途之一。拥有唯一标识符对于事物之间的关系非常重要。

  

是的,ID是唯一的,但是一个类也可以是唯一的......

可以 作为操作词组。如果我告诉浏览器使用“foo”id查找元素,一旦找到该元素,它就会停止查找。如果我告诉它我想要类“bar”的元素,它必须搜索整个DOM才能找到它们。

答案 5 :(得分:2)

来自http://www.w3.org/TR/html401/struct/global.html#adef-class

  

id属性在HTML中有几个角色:

     
    

作为样式表选择器。

         

作为超文本链接的目标锚。

         

作为从脚本引用特定元素的方法。

         

作为声明的OBJECT元素的名称。

         

用于用户代理的通用处理(例如,用于在将HTML页面中的数据提取到数据库中时识别字段,将HTML文档翻译成其他格式等)。

  
     

另一方面,class属性为一个元素分配一个或多个类名;该元素可以说属于这些类。类名可以由多个元素实例共享。 class属性在HTML中有几个角色:

     
    

作为样式表选择器(当作者希望将样式信息分配给一组元素时)。

         

用于用户代理的通用处理。

  

我似乎无法找到关于何时将class属性添加到HTML规范的参考,但我可以从个人经验中说,我记得id属性更远了很多(特别是表格处理)。