私はこれまでも、そしてこれからも、常に次のような HTML 入力を閉じます。
<input type=text />
非 XHTML の方法の代わりに
<input type=text>
しかし、私の質問は、どちらの方法でも、クロスブラウザー、モバイルデバイスなど、予見可能な問題はありますか? 私が使用しているフレームワークが終了タグなしで入力を生成することに気付きました。私のコードと彼らのコードに違いがあるのは嫌です。それは本当に迷惑で醜いです。
タグはinput
非常に長い間閉じられていないため、事実上すべてのシステムが閉じずに処理できるはずです。ドキュメントを XHTML として宣言した場合、タグが閉じていないかどうかは検証されず、一部の XML ユーティリティでは解析に問題が発生する可能性がありますが、Web ブラウザーは受け入れるものに関して非常に自由度が高いように設計されています。
個人的には、HTML ドキュメント内の空のタグを閉じることによるクロス ブラウザーの問題は見たことがありません。
ただし、Refactoring HTMLによると、Netscape 3 などの古いブラウザーは空の要素を適切に解析しません。
これは、SGML および一部の HTML4 パーサーで、空のタグ構文に似た構文 " NET " がサポートされていたためです ( XHTML の考慮済み有害性から引用) 。
"/>" 空のタグ構文は、実際には HTML4 ではまったく異なる意味を持ちます。(名前を正しく思い出せば、これは NET として知られる SHORTTAG 最小化機能です。) 具体的には、XHTML
<p> Hello <br /> World </p>
...は、HTML4 として解釈される場合、次とまったく同じです。
<p> Hello <br>> World </p>
...実際には次のようにレンダリングする必要があります。
Hello > World
したがって、HTML4 を使用していて<!DOCTYPE>
Netscape 3 をターゲットにしている場合は、それを行わないでください。しかし、HTML5 (または XHTML) を使用している場合は、空のタグを閉じても害はありません。実際、XHTML ではそうしなければなりません。そうしないと、Tim Bray が子犬を殺してしまいます。
閉じられていない入力タグがある場合でも有効なhtmlであるため、xhtml標準を満たす必要がない場合は問題ありません。