1

好的,我知道我的问题非常基本和愚蠢。但我真的很想知道这背后的原因。

我做网站,我遵守所有的 w3 规则。我的 HTML 是有效的。但是这个问题今天早上打到了我。

在 HTML 中,我们有一个 ID 和一个 CLASS。两者都具有相同的功能。但是一个 ID 只使用一次,一个 CLASS 用于一组元素。

例如:

<div id="menu">
    <div class="menu-item"></div>
    <div class="menu-item"></div>
    <div class="menu-item"></div>
</div>

也可以写成

<div id="menu">
    <div id="menu-item"></div>
    <div id="menu-item"></div>
    <div id="menu-item"></div>
</div>

上述两个代码都会产生相同的结果,对吧?当我第一次开始制作网站时,我已经制作了整个网站并且不确定这个规则。

所有这些网站都卖光了,而且没有一个网站遵守这个规则。其中之一是 http://www.mmun.org.pk/

所以是的,不要拒绝这个问题,我知道我也可以用谷歌搜索,但我无法与谷歌上的任何人讨论它。

谢谢 :)

4

5 回答 5

2

让我们举个例子。

就像人类是阶级一样,我们都是它的孩子,但我们仍然有唯一的身份,但属于同一阶级。

与 DOM 相同,它们可以属于同一类,但 ID 必须是唯一的。

于 2013-05-02T03:09:24.090 回答
1

这些是根本不同的概念。有人会说得比我好,但是...

“类”描述了实体的某些属性——它们的共同点。你不能被你的班级唯一识别,尽管如果我知道你的班级,我可能会知道很多关于你的事情。如果你是“国王”,我想你住在宫殿里,戴着王冠,有仆人……但我不认识你。如果你是威廉·亚历山大,出生日期 1967 年 4 月 27 日,我知道你是谁。

“阶级”就像“国王”。“id”就像“Willem Alexander”。可以有不止一位国王;但唯一标识符是唯一的。你用一个类来描述属性和方法——但你没有标识一个实例。

我希望这能澄清一点。

于 2013-05-02T03:12:08.587 回答
1

ID 应该是唯一的,并且不能多次使用,您可以在其中多次使用类。

ID 比类更具体。

ID 通常用于使用 JavaScript 定位元素。

于 2013-05-02T03:07:14.573 回答
1

不。绝不。id和class是不同的。在 javascript 中,您可以使用带有 id 的“document.getElementById()”。在 css 中,您可以使用 id 和 class 不同地定义它。因为 Id 是唯一的,但 class 可以无处不在。

于 2013-05-02T03:08:11.390 回答
1

如果您谈论的是纯 HTML,那么从技术上讲,您多次使用相同的 ID,但根据我的经验,如果您曾经将 ID 用作选择器,这会导致问题。同样重要的是要注意,在 XHTML 中,不允许重复 ID,因为 XML 严格不允许这样做。

浏览器不会为此抛出错误的原因是它们被编码为对不良 HTML 有一定的容忍度。悲伤,但真实。

再解释一下:浏览器提供了操作 HTML 中元素的方法(DOM 方法,例如document.getElementById())。getElementById将返回一个且仅返回一个元素,因此为两个元素提供相同的 ID 会令人困惑,因为您只能通过该 ID 访问其中一个元素。

于 2013-05-02T03:10:38.933 回答