2013-08-26 23 views
0

我檢查他們的div顏色之間交替的方式a certain webpage,發現這個:在HTML文檔中標識符重用是否違反W3C標準是個神話嗎?

<div class="row8 inline clearfix" id="light-orange">...</div> 
<div class="row8 inline clearfix" id="light-pink">...</div> 
<div class="row8 inline clearfix" id="light-orange">...</div> 
<div class="row8 inline clearfix" id="light-pink">...</div> 
<div class="row8 inline clearfix" id="light-orange">...</div> 
<div class="row8 inline clearfix" id="light-pink">...</div> 
<div class="row8 inline clearfix" id="light-orange">...</div> 
<div class="row8 inline clearfix" id="light-pink">...</div> 

思考,這是HTML的一個例子,將無法驗證,我ran it through the W3C validator。它確實有錯誤,但沒有一個是關於ID的非唯一性的。

我讀過的所有內容都表明,id在網頁中必須是唯一的。這裏真正的故事是什麼?

+0

html5,xhtml,html4都會給出重複的id錯誤,您檢查了哪些文檔類型與html2? – Musa

+0

[** This **](http://8list.ph/site/articles/8-life-lessons-taught-by-candy-crush-206)是我發現此問題的頁面。你可以看到w3c驗證器的響應[** here **](http://validator.w3.org/check?uri=http%3A%2F%2F8list。pH值%2Fsite%2Farticles%2F8-生命吸取成才逐糖果壓碎-206&字符集=%28detect +自動%29&DOCTYPE =內嵌&組= 0#preparse_warnings)。傻臉書facebook linkbait文章,對不起。 –

回答

1

您不應該在網頁中出現重複的ID,因爲通過ID綁定或應用於元素的內容只會應用於找到的第一個ID。因此,您只會應用CSS或將事件綁定到具有給定ID的其中一個元素。如果你有一個重複的ID,這可能意味着你應該使用一個類來代替。

1

HTML 5規範說,如果我們讀取它的定義,ID必須在它的主子樹中是唯一的,它基本上是文檔。

發現在谷歌。如果您想要替換顏色,請使用類。 ID應始終是唯一的。

0

tl; drid must be unique

當驗證此頁by directly inputting its HTML,驗證報告的(無關)錯誤停止所有如下的錯誤報告:

最後一個錯誤後無法恢復。任何進一步的錯誤將被忽略。

(我不知道爲什麼通過輸入URI驗證時,不報這個錯誤。)

對於這樣的問題(必須id是唯一的?),最好檢查有關規範,即HTML5在你的情況:The id attribute

或者你可以驗證一個最小的例子,如:

<!DOCTYPE html> 
<html> 
<head> 
    <title>@id test</title> 
</head> 
<body> 

    <div id="light-orange"></div> 
    <div id="light-pink"></div> 
    <div id="light-pink"></div> 

</body> 
</html> 

個W3C驗證報告:

1錯誤
重複ID淺粉紅色。

相關問題