Html ID为什么存在?

Html ID为什么存在?,html,css,Html,Css,任何可以用ID做的事情都可以用类来做 那么为什么会有ID属性呢 是的,ID是唯一的,但类也可以是唯一的…类用于一组类似的元素 id对于元素是唯一的。 如果您想更改所有复选框,可以使用类。 如果你想对一个特定的复选框做些什么,你可以使用id。DOM的存在不仅仅是为了设计元素的样式——元素也可以被操纵(通常通过Javascript),通常按id选择元素比按类选择要有效得多。本文可能会对此进行更好的解释。在HTML的每个标准中,class和id具有不同的功能。例如,id通常只使用一次,以表示唯一的元素

任何可以用ID做的事情都可以用类来做

那么为什么会有ID属性呢


是的,ID是唯一的,但类也可以是唯一的…

类用于一组类似的元素 id对于元素是唯一的。 如果您想更改所有复选框,可以使用类。
如果你想对一个特定的复选框做些什么,你可以使用id。

DOM的存在不仅仅是为了设计元素的样式——元素也可以被操纵(通常通过Javascript),通常按id选择元素比按类选择要有效得多。

本文可能会对此进行更好的解释。在HTML的每个标准中,
class
id
具有不同的功能。例如,
id
通常只使用一次,以表示唯一的元素<代码>类(通常也是)用于定义一组元素。

首先,从:

id=名称

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

class=cdata列表

此属性为元素指定一个类名或一组类名。任何数量的元素都可以指定相同的类名。多个类名必须用空格字符分隔

我理解您的问题的实质是,通过故意选择唯一的类名,您可以模拟id属性提供的功能,可以说这使得id属性是冗余的。嗯,我至少能想到一件事,那就是只有用ID才能做到;使用
for
属性将
元素与表单元素关联。例如:

<label for="firstname">First Name:<label>
<input type="text" id="firstname" name="firstname" value="" />
名字:
出于可访问性的原因,这是一个很好的实践。如果将
与复选框或单选按钮元素一起使用,您将获得可单击标签的额外好处。例如:

<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" />
男性
女性
来自:

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

作为样式表选择器

作为超文本链接的目标锚

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

作为已声明对象元素的名称

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

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

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

用于用户代理的通用处理

我似乎找不到将
class
属性添加到HTML规范中的参考,但我可以从个人经验中说,我记得很久以前的
id
属性(尤其是表单处理)

任何可以用ID做的事情都可以用类来做

实际上不是。如果给元素一个ID,它可以是链接的目标(例如,
http://www.example.com/page#foo
使用
页面上的
id=“foo”
将您带到元素;现在这比旧的
机制更可取。)

那么为什么会有ID属性呢

因为它们的用途完全不同。上面的例子只是页面上内容的唯一标识符的无数用途之一。拥有唯一的标识符对于事物之间的关系很重要

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


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

我认为应该禁用不带注释的向下投票,除非您来自wikipedia:id属性为元素提供文档范围的唯一标识符。这用于标识元素,以便样式表可以更改其表示属性,脚本可以更改、动画或删除其内容或表示。附加到页面的URL之后,它为元素(通常是页面的一个子部分)提供了一个全局唯一标识符。例如,@MK:I中的ID“Attributes”不能输入得那么快,好吧……在类上选择通常比较慢。@MK:那么为什么应该允许10K+用户(像我一样)在没有注释的情况下进行向下投票呢?您可以将该ID用作一个类,因此在这个类中不需要ID属性case@Alex您希望标识对象,而不是对其进行分类。你不把它放在一个特定的类中,你给它一个身份。这更具语义。链接不错,但请引用/总结一下。应鲍尔先生的要求添加了更多的总结。锚参数很好,我没有想到:)对我来说,+速度似乎不那么重要,因为文档在客户端的计算机上按照相同的行文进行解析,有些人只使用ID。i、 e.aria Active子孙、aria控件、aria描述人、aria flowto、aria labelledby和aria所有者。