2016-07-22 9 views
0

html要素の終了タグが欠落している場合、Google chrome(および最近のすべてのブラウザ)が自動的にhtml要素の終了タグを追加します。 要素親の末尾に終了タグが自動的に追加されますhtml終了タグをスキップ

例1:

<tag1>content1<tag2>content2<tag3>content3 

ウィル出力:

<tag1> 
    content1 
    <tag2> 
     content2 
     <tag3> 
      content3 
     </tag3> 
    </tag2> 
</tag1> 

例2:

<tag1>content1<tag2>content2</tag2><tag3>content3 

ウィル出力:

<tag1> 
    content1 
    <tag2> 
     content2 
    </tag2> 
    <tag3> 
     content3 
    </tag3> 
</tag1> 

は、私は、以前のHTMLの例は無効と難しいを読み取ることがあることを知っています。しかし、html minifierを使用してこのルールに従う閉じるhtmlタグを削除すると、テンプレートのサイズが小さくなる可能性があります。なぜ、このルールを使ってhtml minifierがないのですか?いくつかの制限はありますか?

編集:コンテキスト:私は私の例でtagXを使用し、なぜ私は特に、任意の名前タグの話ではないのです、というのです。例えば。 angularjs要素ディレクティブ付き

+0

HTMLの代わりに構成要素を使用しているため、これらは無効です。一部の要素にはオプションの終了タグがあり(一部にはオプションの開始タグがあります)、完全に有効です。 – Quentin

+0

あなたが話しているソフトウェアを教えてくれていないので、HTMLミニファイアがオプションのタグルールを利用していない理由はわかりません(答えはおそらく "あなたが設定しなかった適切なオプション "または"どうすればわかるのか、作者に尋ねる ") – Quentin

+0

何十バイトも節約するのはなぜですか?新しいアイコンをナビゲーションに追加すると、貯蓄がすべて消されます。 –

答えて

1

良い観察。これは、Firefoxによって長い間行われてきただけでなく、開発者が意味論を持つのに役立ちます。しかし、私たちが直面する問題は、先ほど触れたことです。 Firefox、Chromeしかし、IEは何をしていますか?またはscreenreaders?私はSafariがFFとChromeと同じレベルでこれをやっていないことを知っています。

これはブラウザのサポートに至り、有効なhtmlに関する一般的なグローバルコンセンサスを持っています。ブラウザ固有の実装の代わりに作業する青写真を持つことは、パーサをフェイルセーフしない古いデバイスや新しいデバイスをより安全にWebテクノロジを実行できることを意味します。

+2

ブラウザは、長時間にわたり無効なHTMLを処理することに関して比較的一貫しています。 HTML5には、*より一貫性のあるものにするためのパースルールが含まれています。要素の多くには明示的にオプションの終了タグがあるので、質問に質問している無効なHTMLではないかもしれません(残念ながら、例は[MCVE]ではありません) – Quentin

+0

スクリーンリーダーとして、生のHTMLブラウザーによってAPIのみが提供されました。 – Quentin

+0

@Quentinこれは私の言いたいことです。 「比較的一貫して」、市場に出るデバイスの機能を知らないことは、過度の基準に固執することはすでに良いことです。スクリーンリーダーは一般的に有効なhtmlに依存して動作します。デバイスブラウザの進歩状況によっては、フェールセーフHTML、あなたのためのタグ、またはブロックやインライン要素の修正が含まれていてもいなくてもかまいません。特定のブラウザの実装に依存するか、「比較的一貫性がある」とは100%をサポートしていません。 –

関連する問題