HTMLはXMLではありません

多くの人は、htmlはxmlのサブセットだと考えています。 そして、それに応じて、彼らは同じスタイルでコードを書きます。 しかし、これはそうではありません。これらのマークアップには違いがあります。 htmlには適用できないxmlルールがいくつかあります。



xmlスタイルでhtmlを作成しようとしている人の3つの主なエラーを見ていきます。



1.自動終了タグ



最初の最も一般的な間違い。 多くの場合、誰かがhtmlタグを閉じようとしているのを見ました

/>を使用して、たとえば<button />または<br />など

しかし、要素にコンテンツがない場合でも、そのように書くことはできません。 xmlとは異なり

HTMLでは、/>でタグを閉じることは禁止されています。 タグは、 </ tag>でのみ明示的に閉じることができます。 これは単なる良いスタイルではありません。 ブラウザは、要素内の「/」記号をエラーとして解釈し、無視します。 アイテムは閉じません。



ブラウザがそのようなタグを処理する方法を見てみましょう。 次のhtmlを実行します。



<div style="background-color: red; width: 300px;">  <div style="background-color: green;"/>   </div> <div> </div>
      
      





すべてが正常であるように見えますが、次のようになります。







ご覧のとおり、ブラウザは/>で終わる要素を閉じませんでした。 明示的な</ div>で閉じる必要がありました。



ちなみに、真面目な企業でさえ、正しく書かないことがあります。



Yandex.Metricaはimgタグを次のように書き込みます。<img src = "// mc.yandex.ru/watch/24049213" style = "position:absolute; 左:-9999px; "alt =" " />



2.終了タグ



さて、タグは明示的に閉じる必要があります。 だから、常に<tag> </ tag>と書くべきですか? いや それほど単純ではありません。 htmlの仕様によると、一部のタグは閉じる必要があり、一部はオプションで、一部は禁止されています。



例を挙げます。



もちろん、これらの例は完全ではありません。 個々のタグについては、ドキュメントを参照してください。



3.ブール属性の作成



htmlにブール属性(チェックや無効など)を記述する方法は? xmlスタイルのhtmlを書く人はたまたまこのように書いています<option selected = "true"> </ option>

これは必要ありません。 htmlには真の価値はありません。 標準では、属性がマークアップで宣言されている場合、その値はすでに真であるとされています。



次の3つの記録オプションのいずれかを選択できます。



<input id = "smth" disabled type = "text">のような短い3番目のオプションを使用することを好みます。



PSこれらのルールは、xhtmlではなくhtmlに適用されます。 ただし、ページがxhtmlとしてフレーム化されている場合でも、ブラウザは

サーバーがmime-type 'text / html'で指定した場合、htmlとして逆アセンブルします。 ページが有効なxhtmlになるためには、そのmime-typeは'application / xhtml + xml'でなければなりません。 その後、ブラウザはxmlルールに従ってこのページを解析します。



All Articles