2009-05-24 110 views
2

我知道我應該把所有html元素放在body標籤中,但是我需要在html dtd上面放兩個隱藏的輸入。我想它不會使我的html文件成爲標準,但是它不好嗎?我有以下代碼。<input type ='hidden'>上面的html dtd

<input type='hidden' id='current_controller'> 
<input type='hidden' id='current_module'> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

有什麼風險?到目前爲止,我沒有任何問題。

+6

你是什麼意思「需要」?我敢打賭,你不需要「。無論出於何種原因,這都比以正確的方式做起來容易。 – cletus 2009-05-25 00:00:03

回答

4

風險是,IIRC,如果它不是第一行,IE6遇到問題doctype。這也不是標準做法,可能在其他瀏覽器中引起怪癖(但我相信大多數應該是寬容的)。

它似乎也正在使用XHTML ...因此,這些輸入元素應該是自閉的,因爲它們沒有結束標記。

<input type='hidden' id='current_controller' /> 
<input type='hidden' id='current_module' /> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

他們有什麼理由必須在那裏?爲什麼他們不能放在body元素的某處?如果他們沒有value屬性,我不能看到任何實際用途,除非您正在檢查它們的存在,或者通過JavaScript添加value屬性(這意味着您也可以通過JavaScript自行添加這些元素)。

1

的風險是,由於您的文檔是無效的,這將有可能無法正確在某些瀏覽器或不同版本的同一瀏覽器的渲染(和瀏覽器,甚至將來的版本此可能目前的工作。)

我不確定這種情況可能會導致您需要這樣做。你用這種方法試圖解決什麼問題,也許在那裏試圖擺脫另一個問題? :)

2

如果您實際上將其作爲XHTML服務並因此使其通過XML解析器運行,則它不會呈現爲標記無效。

+0

+1好回答,沒想到那個! – alex 2009-05-25 01:23:23