web-dev-qa-db-ja.com

HTML 5対XHTML 1.0 Transitional?

HTML 5は、Firefox 3.1やその他のブラウザで(部分的に)サポートされるようです。タグとしてビデオとオーディオのサポートを追加していますが、これらはXHTML 1.0 Transitionalが認識しない新しいタグです。 Firefoxの将来のバージョンで新しいHTML 5タグを使用し、XHTMLにDTDを使用する場合の動作はどうなりますか?また、HTML 5マークアップとXHTML 1.0 Transを混在させるとどうなりますか?

これはわかりにくいです。これらのタグをXHTMLに追加しなかったのはなぜですか? XHTMLとHTML 5の両方をどのようにサポートしますか?

HTML 5のビデオ: http://www.youtube.com/watch?v=xIxDJof7xxQ

54
Brennan

さて、一般的にHTMLはSGMLであり、XHTMLはXMLで表現されます。そのため、XHTMLの作成には、HTMLよりも多くの制限(マークアップの形式)が関連付けられています。 ( SGMLベースのHTMLとXMLベースのHTML

Wikipedia で述べたように、HTML 5にはXHTMLバリアント(XHTML 5)もあります。

経験則:常に有効なマークアップを使用する必要があります。また、XHTML 1.0 Transitionalでは、前述の<video>または<audio>タグを使用しないでください。これらのタグは、この仕様の要素ではありません。 本当にこれらのタグを使用する必要がある場合は(非常に疑わしい)、ドキュメントがそのDOCTYPEで。

実装の所定の状態でHTML 5またはXHTML 5を使用すること(知る限り、標準はまだ定まっていませんが、正しいのでしょうか?).

Edit 2013:最近のダウン投票のため、この受け入れられた回答は(私によって)削除できないため、HTML5のサポートと標準化プロセスは、5年前にこの回答を書いたときとはまったく異なることを付け加えたいと思います。ほとんどの主要なブラウザーはHTML5ドラフトのほとんどの部分をサポートしており、古いブラウザーのポリフィルで多くの問題を修正できるため、現在は主にHTML5を使用しています。

10
hangy

HTML5は、XHTML 1.0よりもはるかに簡単に記述できます。

  1. http://www.w3.org/1999/xhtml 」名前空間を手動で宣言する必要はありません。

  2. スクリプトおよびスタイル要素にテキスト属性を追加する必要はありません(デフォルトではtext/javascriptおよびtext/cssになります)。

  3. ブラウザがそのほとんどを無視するような長いDoctypeを使用する必要はありません。覚えやすい<!DOCTYPE html>を使用する必要があります。

  4. Doctypeにdtd uriを含めるか含めないか、transitionalとstrictのいずれかを選択することはできません。完全な標準モードを呼び出す厳密なdoctypeがあります。そうすれば、誤ってAlmost StandardsモードまたはQuirksモードになることを心配する必要がありません。

  5. 文字セット宣言ははるかに簡単です。 <meta charset = "utf-8">です。

  6. Void要素を<name>として記述するのがわかりにくい場合は、必要に応じて<name />を使用できます。

  7. HTML5には http://validator.nu/ で非常に優れたバリデーターがあります。バリデーターは、すべてのルールを表現できない安っぽいDTDに拘束されません。

  8. 検証するために、インラインスクリプトまたはスタイルシート(特定の状況では)に// <![CDATAなどを追加する必要はありません。

  9. 必要に応じてembedを使用できます。

構文的には、HTML5を使用すると、常に標準モードを起動する、よりクリーンで読みやすいマークアップになります。 XHTML 1.0(text/htmlとして提供される)を使用する場合、ブラウザーが自動的に行う(大量のdtdに対して検証するために)大量のcrudを指定しています。

97
Shadow2531

このスレッドには神話と誤解がたくさんあります。

  1. XHTML 1.0はHTML 5よりも古いです。新しいボキャブラリーを使用することはできません。実際、その主なセールスポイントは、HTML 4.01とまったく同じ語彙を使用していることです。

  2. XHTML 1.2はありません-ほとんどの場合。そして、それは必要ありません。 XHTML 5は、HTML 5のXMLシリアル化です。同一の語彙、異なる解析ルール。

  3. HTMLは、ブラウザで真のSGMLとして扱われたことはありません。 SGML準拠のパーサーを実装したブラウザはこれまでにありません。 HTML 5はこの事実をルールにし、HTMLのシリアル化は今日の事実上の標準に従います。おそらく「SGMLっぽい」と言えるでしょう。

  4. 既に述べたように、DTDはブラウザーで1つの目的を果たすだけで、標準準拠モードと奇抜モードを区別することです。したがって、スタイルとスクリプトのみに影響します。厳密なdoctypeを使用してページでフレームを使用している場合、それらは正常にレンダリングされます。 <embed>および<Marquee>でさえも-後者は憎むべきものであり、前者は現在の標準ではありませんが。ただし、HTML 5の一部です。

  5. ビデオとオーディオは、シリアル化、XMLまたはHTMLに関係なく使用できます。それらはHTML 5とXHTML 5の両方の一部です。解析段階が終了すると、ブラウザはドキュメントの内部DOMを構築します。そのDOMは、シリアル化に関係なく、すべての実用的な目的で同じになります。はい、doctypeに関係なく、text/htmlで送信されるXHTMLは通常のhtmlです。

28
Lars Gunther

XHTML 1.xとの関係 セクション、HTML 5は次のように述べているため、問題を間違った方法で見ている可能性があります。

「この仕様は、HTMLボキャブラリーのXMLシリアル化の規範的な定義としてXHTML 1.0を置き換えることを意図しています。」

今、その言語は議論の余地があります(XHTML 2 WGが異議を唱え、HTML WGが違いを解決しようとしています...)が、私たちは今その立場にいます。

いくつかのメモ:

7
soypunk

Doctypeはブラウザで1つの目的のみを果たすことに注意してください:奇妙なもの、ほとんど標準と標準モードを切り替えることです。したがって、<video>および<audio>を使用すると、どのdoctype宣言でも機能します。 XHTML doctypeを使用するIMOは、text/html MIMEタイプで送信するすべてのページがとにかく(タグスープ)HTMLとして解析されるため、まったく役に立ちません。 HTML5 doctype(<!doctype html>)を使用することをお勧めします。覚えやすく、理由なくXML構文を強制する必要がないためです。

これらのタグをXHTMLに追加しなかったのはなぜですか?

実際に、HTML 5(XHTML5)のXMLシリアル化が行われました。これを使用するには、application/xhtml+xmlなどのXML MIMEタイプでページを送信する必要があります。ただし、これはIEで(まだ)サポートされていません。

4
Ms2ger

Firefoxの将来のバージョンで新しいHTML 5タグを使用し、XHTMLにDTDを使用する場合の動作はどうなりますか?

また、HTML 5マークアップとXHTML 1.0 Transを混在させるとどうなりますか?

マークアップが選択したDTDの一部として実装されていない場合-論理的には、そのマークアップに従う必要はありません。しかし、ブラウザの実装は常に厳密に論理的であるとは限りません。

これらのタグをXHTMLに追加しなかったのはなぜですか? XHTMLとHTML 5の両方をどのようにサポートしますか?

xHTMLはHTMLよりも優れているわけではありませんが、一部のアプリケーションにより適しています。 xHTMLの主な利点の1つは、XSLTを使用してさまざまな形式に変換できることです。たとえば、XSLTを使用して、xHTMLをRSSフィードまたは別のXML形式に自動的に変換できます。

両方の形式をサポートする必要はありません。それぞれの利点/欠点をプロジェクトの要件に合わせて比較検討してください。 HTML 5はおそらくしばらくの間標準ではなくなるでしょう。

3
codeinthehole

(X)HTML5は次のバージョンです。 XHTML5が十分にサポートされるまで、XHTML1.1を使用する必要があります。

おそらく、HTML5の後方互換性SGMLプロファイルを使用しないでください。スクレーパーや小さなパーサーの場合、物事が難しくなります。

1
singpolyma