<input type =“hidden”/>在html dtd之上

时间:2009-05-24 23:43:24

标签: dtd standards

我知道我应该将所有html元素放在body标签中,但是我需要在html dtd上面放两个隐藏的输入。我想它不会使我的html文件成为标准,但它是不是很糟糕?我有以下代码。

<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">

有什么风险?到目前为止,我没有任何问题。

3 个答案:

答案 0 :(得分:4)

如果IE6不是第一行,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解析器,则它将不会呈现,因为标记无效。

答案 2 :(得分:1)

风险在于,由于您的文档无效,因此可能无法在某些浏览器或同一浏览器的不同版本(甚至是当前可能正在使用的未来版本的浏览器)中正​​确呈现。

我不确定这种情况可能是什么,你需要这样做。你试图通过这种方法解决什么问题,也许还有另外一个问题试图走出去? :)