2010-04-01 127 views
8

根據HTML標準標識 - 網頁中的任何HTML標籤的屬性在文檔中必須是唯一的!?HTML:Display:none這是否允許具有相同名稱的多個ID-屬性(何時「隱藏」)?

此規則是否也適用於通過使用display:none?已被「禁用/隱藏」的HTML標籤?

例子:

<html> 
<body> 
<div id="one"></div> 
<div id="one" style="display:none;"></div> 
</body> 
</hmtl> 

這是有效的HTML或沒有。所以問題是「display:none」= hidden元素是否只在單個網頁中擁有唯一的ID屬性的規則/計算/事項?

感謝 月

回答

13

這不是一個有效的標記。驗證不考慮應用於DOM元素的CSS樣式。

有仍然具有爲每ID只有一個元件,而不管其是否是可見或不可見,無論是他人在z堆後面,它是否位於視口等

2

ID必須外面是獨一無二的...否則是與災難調情!

+1

措辭不妙!我覺得這很容易被誤解......你是在回答他提出這個問題的第一種方式嗎(「這個規則是否也適用於通過使用display:none?被禁用/隱藏的HTML標籤」)或者第二(「這是否有效的HTML?」)? – 2010-04-01 14:46:57

+0

猜猜這不是一個是/否回答問題... – Zoidberg 2010-04-01 15:48:35

+0

請求更正的評論本來已經足夠了。脾氣暴躁的downvoter。 – Zoidberg 2010-04-01 15:49:09

1

無論他們是否隱藏,或者他們仍然在文檔中都沒關係。即使它們是動態創建的,它們也不應具有相同的ID。 「這不是一個有效的標記」 - 開發人員藝術

0

爲元素設置樣式(即使應用display:none)也不會從文檔樹中刪除該元素。

1

當然,正如其他人所說,這不是有效的標記。你也必須在這裏考慮DOM選擇。 document.getElementById()選擇具有特定ID的一個元素,而不管其在文檔內的可見性/顯示。

0

所以,問題是做「顯示:無」 =隱藏要素也「計數/事」在考慮到規則

是。 CSS不會影響節點是否被認爲是文檔的一部分。

如果它們不都包含在同一個Document(或DocumentFragment)的層次結構中,則只能使用具有相同ID的多個Elements,例如,當你剛剛使用JavaScript到createElement一個新的節點,但不是appendChild編輯它的文件呢。

相關問題