2009-05-24 15 views
2

私はbodyタグにすべてのhtml要素を入れる必要があることを知っていますが、html dtdの上に2つの隠し入力を置く必要があります。私はそれが標準として私の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

答えて

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属性を持たない場合は、実際に使用することはできません。

1

危険性は、ドキュメントが有効でないため、一部のブラウザや同じブラウザの別のバージョン(およびこれが現在動作するブラウザの将来のバージョン)で正しくレンダリングされない可能性があります。

これを行う必要があるようなケースが何であるかわかりません。あなたはこのアプローチで解決しようとしている問題は何か、おそらくそこに出ようとする別の質問がありますか? :)

2

実際にこれをXHTMLとして提供しているため、XMLパーサーを実行すると、マークアップが無効であるためレンダリングされません。

+0

+1良い答えは、それを考えなかった! – alex

関連する問題