使用相同的ID为多个HTML标签? [重复](Using same ID for multipl

2019-06-25 13:46发布

可能重复:
具有相同ID响应一个CSS ID选择多个元素

下面是我测试的示例代码和我弄糊涂了。 每个人说,我们可以使用或应该每个ID只能使用一次,但我一直在使用多次,但它给我正确的输出使用它的睾丸。

我该怎么办?

它还挺工作同样喜欢类我在这个例子中

码:

<html>
<head>
<style>

#exampleID1 { background-color: blue; } 
#exampleID2 { text-transform: uppercase; } 

</style>
</head>
<body>
<p id="exampleID1">This paragraph has an ID name of "exampleID1" and has a blue CSS defined background.</p>
<p id="exampleID2">This paragraph has an ID name of "exampleID2" and has had its text transformed to uppercase letters.</p>

<address id="exampleID1">

Written by W3Schools.com<br />
<a href="mailto:us@example.org">Email us</a><br />
Address: Box 564, Disneyland<br />
Phone: +12 34 56 78
</address>


<blockquote id="exampleID1">
Here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation.
</blockquote>

</body>
</html>

请参阅上面的代码,并回答我,为什么我们不应该在页面中使用id选择的两倍,而其工作的罚款。

Answer 1:

一个ID必须是在一个页面是独一无二的。 如果你想描述一组元素使用的类。

为什么同时其做工精细,我们不应该在页面中使用id选择两次。

你正在一个错误,并根据这将不会查看该页面以补偿它的每一个浏览器。 你不能肯定他们的旨意。



Answer 2:

我认为,更简单的方法来了解正在做一个产品的类比。 试想一下,一个ID就像一个序列号,换句话说,它必须是唯一的,这样就可以识别出具有相同的副本milions的产物。

然后,想象class的产品代码,例如可以是条形码。 在超市所有等于产品具有相同的条形码由光学读出器来读取。

所以,一个ID是唯一identifiquer和class基团的一组元素。

但是,如果我使用相同的ID在我的HTML / CSS我是得到一个完美的结果,我为什么要担心的唯一ID S'

原因1号:

在未来,如果你需要使用JavaScript,如果你需要操纵特定的元素,它有一个重复的ID ,你的代码将不会产生预期的结果。

原因2号

您的代码不会被W3C被valited,什么意思,你可以有你的网站保持兼容翻过浏览器头疼的问题。 它可以在一个浏览器和其他不正常工作。

用一个真实的例子,假设你想dinamically更新,使用Javascript,此元素的文本:

<blockquote id="exampleID1">
Here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation here is a long quotation.
</blockquote>

使用JavaScript / JQuery的,你会使用这样的代码:

$("#exampleID1").html("Changing element content");

然后将元素的文本<blockquote id="exampleID1">将被更新,但以下元件也将被更新的,因为它具有相同的ID

<p id="exampleID1">This paragraph has an ID name of "exampleID1" and has a blue CSS defined background.</p>

所以,如果你只想一个元素的更新,它们必须具有唯一的ID秒。

我希望你可以使用这个解释更好地理解之间的区别IDclass



Answer 3:

它的工作,但是这并不标识是为了(根据HTML规范)的使用方式。 的ID必须只是指一个对象。 描述多个对象必须用类,而不是ID来完成。



Answer 4:

您应该使用唯一的ID,以确保HTML是有效的。

这背后的原因很简单,就是IDS用于识别独特的元素。

该网页将仍然呈现,尽管是无效的,但最大的现实问题是,JavaScript和其他库进行了优化,在假设ID是唯一的,这样,如果你想获取一个ID的所有元素,并使用其隐藏例如工作jQuery的

$('#exampleID1').hide();

只有第一个元素会被隐藏,因为通过ID来选择应该只返回一个单一的项目,一旦一个元素被发现查询短路返回单个元素。 如果不知道这一点,你可以得到一些看似奇怪的行为,很难诊断的缺陷。



Answer 5:

为什么同时其做工精细,我们不应该在页面中使用id选择两次

因为你不知道它是否在每个浏览器工作正常。

规格说,一个ID必须是唯一的页面,所以当浏览器找到你的副本ID:就是他们会试图竭尽所能地处理它。 大多数浏览器似乎使用标识只为第一要素,但留下的元素id属性,使你的CSS仍然有效处理它,但不能保证所有浏览器处理它的方式。

不同的浏览器厂商使用不同的策略来处理不正确的标记,并且每个供应商找到了“新的,更好的”的方式,让不正确的标记在许多不同的方式尽可能通常处理。



文章来源: Using same ID for multiple HTML tags? [duplicate]