2013-05-02 29 views
1

好吧,我知道我的問題是非常非常基本和愚蠢的。但我真的很想知道背後的原因。Arent id和class是一樣的嗎? :/

我製作網站時,遵循所有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/

所以是啊不要大拇指下來這個問題,我知道我也可以谷歌這一點,但我不會與任何人在谷歌上討論它。

謝謝:)

+0

沒有人喜歡每個人唯一標識與DOM相同每個dom都有唯一標識..但它們可以屬於同一類。 – 2013-05-02 03:07:22

+0

可能重複,http://stackoverflow.com/q/1215618/425313 – 2013-05-02 03:09:45

回答

1

ID應該是唯一的,不能使用一個以上的時間,在那裏你可以使用類多次。

ID比類更具體。

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

+0

究竟是什麼Im問,爲什麼只能使用一次?如果你可以多次使用它,它也可以工作。 – 2013-05-02 03:08:22

+0

@UzairHayat http://www.w3.org/TR/REC-html40/struct/global.html#adef-id – 2013-05-02 03:10:05

1

nope。決不。 id和class是不同的。 at javascript,你可以使用帶有id的「document.getElementById()」。在css中可以使用 ,你可以用id和class來定義它。 因爲Id是唯一的,但類可以隨處可見。

+0

嗯,這使得它更清晰,謝謝:) – 2013-05-02 03:10:05

2

讓我們舉例說明。

就像人類是階級,我們都是孩子,但我們仍然有獨特的識別,但屬於同一類。

與DOM相同,它們可以屬於同一類,但ID必須是唯一的。

1

如果您在談論純HTML,那麼您在技術上多次使用相同的ID,但根據我的經驗,如果您曾將ID用作選擇器,則會導致問題。注意在XHTML中,重複的ID是不允許的,因爲XML嚴格禁止這種情況。

瀏覽器不會爲此拋出錯誤的原因是,它們被編碼爲對寬容的HTML有些寬容。傷心,但是真的。

更多解釋:瀏覽器提供了操縱HTML中元素的方法(DOM方法,如document.getElementById())。 getElementById將返回一個且只有一個元素,因此將相同的ID添加到兩個元素會讓人混淆,因爲您只能通過該ID訪問其中的一個元素。

1

這些是根本不同的概念。有人會說比我更好,但...

「類」描述了實體的某些屬性 - 他們有共同的東西。你不能被你的班級獨一無二地識別出來,儘管如果我知道你的班級,我可能會了解你很多。如果你是一個「國王」,我想你住在一座宮殿裏,戴上皇冠,有僕人......但我不認識你。如果你是威廉亞歷山大,出生日期1967年4月27日,我完全知道你是誰。

「類」就像「國王」。一個「身份證」就像「威廉亞歷山大」一樣。可以有多個國王;但唯一標識符是唯一的。你可以用一個類來描述屬性和方法,但是你不能識別一個實例。

我希望這可以清理一些東西。

+0

我相信你的意思是說「身份證」是如「威廉亞歷山大」。謝謝。 – 2013-05-02 03:14:39

+0

我做了相應的編輯。感謝您的支持。 – Floris 2013-05-02 03:17:08