XHTML 1.0 strict(content = "text / html)よりもHTML 4.01 strictを使用するプロはいますか?
2 に答える
もちろん。"
1 単語の属性に余分な文字/
、自己終了要素の文字を含める必要がないため、コードが小さくなります。さまざまな開始タグと終了タグ ( 、、、さらには</p>
、、、およびHTML 4.01 (およびHTML5 )ではオプションです。HTMLを削除するためのいくつかのヒントについては、HTML の最適化と HTML の最適化を参照してください。これらのアドバイスの多くは、HTML 4.01 または HTML5 でのみ機能します。</li>
<html>
<head>
<body>
さて、誰もがこれほど縮小する必要はありません。ただし、そうする場合は、XHTML の代わりに HTML 4.01 (または HTML5) を使用すると効果的です。
また、Internet Explorer は実際には XHTML を XHTML としてサポートしていません。として送信するとapplication/xhtml+xml
、ダウンロードが試行されます。したがって、XHTML を使用する場合は、それを として IE に送信する必要がありtext/html
ます。これにより、ブラウザはそれを HTML として解釈します。なぜ XHTML が悪い考えなのかについてのやや時代遅れの議論については、HTML5 仕様の現在の編集者である Ian Hickson による XHTML が有害であると見なされている を参照してください(これらの理由のいくつかは今でも有効であり、いくつかはもはや関係ありません)。
以下にいくつかの例を示します。
- 整形式の XHTML。
application/xhtml+xml
- 整形式の XHTML。
text/html
- 整形式の XHTML ではありません。
application/xhtml+xml
- 整形式の XHTML ではありません。
text/html
- 整形式の HTML5。
text/html
最初のものは IE では機能しないことに注意してください。2 番目はすべてのブラウザーで機能しますが、バイトを浪費しているだけです。たとえば、ブラウザーは名前空間を適切に解釈しないため、XML を別の名前空間に含めても、実際にはスクリプトまたは CSS の別の名前空間に表示されません。3 番目は大きなエラー メッセージを表示し、4 番目は整形式の XHTML ではありませんが (ブラウザーが HTML パーサーを使用していることを示しています)、問題なく表示されます。
5 番目の例で示されているように、HTML 4.01 doctype または HTML5 doctype を使用して、例とまったく同じ効果を得ることができますtext/html
(これは、HTML 4.01 doctype を貼り付けた場合でも有効な HTML 4.01 です)。HTML 4.01 または HTML5 を使用すると、多くのスペースを節約でき、ドキュメントを XHTML として処理したり、HTML として処理したりすることで、自分を欺くことはありません。
XHTML を as として提供することに注意する必要があるもう 1 つの理由text/html
は、HTML パーサーと XML パーサーのどちらで解析するかによって処理が異なることです。たとえば、次のscript
ような自己終了タグ<script type="text/javascript" src="foo.js"/>
、XHTML で有効であり、XML パーサーによって解析される場合、空の要素として解析されます。ただし、HTML では、これは単にスクリプトの開始タグと見なされ、終了タグが見つかるまでパーサーがスクリプト内にあると想定して解析を続けるため、ドキュメントの残りの部分を「食べる」ことになります。これはあなたが望むものではない可能性が高く、文書を XML として扱い、HTML として扱う場合はつまずく可能性があります。この問題の例を次に示します。これらの 2 つのドキュメントは、内容が同じであっても Firefox では異なって表示されます (Safari はそれらを同じように扱うように見えるため、この問題の範囲はブラウザによって異なります)。
HTML パーサーと XHTML パーサーの違いはこれだけではありません。HTML では、ソースに a がない場合でも、暗黙的に DOM に<table>
a が挿入されます。<tbody>
XHTML では、a を<tbody>
明示的に指定しないと、DOM に存在しません。
したがって、XHTML を as として提供text/html
すると、HTML 4.01 または HTML5 を使用した場合よりもコードが大きくなり、実際の XML として処理したり、HTML として処理したりすると、混乱が生じる可能性があります。
はい: HTML 4.01 を text/html として送信する場合は標準に準拠していますが、XHTML 1.0 を text/html として厳密に送信する場合は標準に準拠していません。実際、ブラウザーは、XHTML を HTML として送信すると、HTML 4.01 を送信していると認識します。