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
解決
まあ、一般的に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 DTDを使用することを確認する必要があります。
実装の所定の状態でHTML 5またはXHTML 5を使用すると(ほとんどのユーザーは標準が定まっていませんが、正しいのですか?)、ほとんどすべてのユーザーがWebサイトを正しく表示しない可能性があるため、逆効果になります。
編集2013: 最近のダウン投票のために、この受け入れられた回答は(私によって)削除できないため、HTML5のサポートと標準化プロセスは、5年前にこの回答を書いたときとはまったく異なることを付け加えたいと思います。ほとんどの主要なブラウザーはHTML5ドラフトのほとんどの部分をサポートしているため、古いブラウザーではポリフィルで多くのものを修正できるため、現在は主にHTML5を使用しています。
他のヒント
HTML5はXHTML 1.0よりもはるかに簡単に記述できます。
-
<!> quot; http:// wwwを手動で宣言する必要はありません。 .w3.org / 1999 / xhtml <!> quot;名前空間。
-
スクリプトおよびスタイル要素にタイプ属性を追加する必要はありません(デフォルトはtext / javascriptおよびtext / cssです)。
-
ブラウザがそのほとんどを無視するような長いDoctypeを使用する必要はありません。覚えやすい<!> lt;!DOCTYPE html <!> gt;を使用する必要があります。
-
Doctypeにdtd uriを含めるか含めないかの選択肢はなく、transitionalとstrictの選択肢はありません。完全な標準モードを呼び出す厳密なdoctypeがあります。そうすれば、誤ってAlmost StandardモードまたはQuirksモードになることを心配する必要はありません。
-
文字セットの宣言ははるかに簡単です。 <!> lt; meta charset = <!> quot; utf-8 <!> quot; <!> gt;。
-
<!> lt; name <!> gt;としてvoid要素を記述するのがわかりにくい場合は、必要に応じて<!> lt; name / <!> gt;を使用できます。
-
HTML5には、 http://validator.nu/ に優れたバリデーターがあります。バリデーターは、すべてのルールを表現できない安っぽいDTDに拘束されません。
-
検証するために// <!> lt;![CDATAなどをインラインスクリプトまたはスタイルシート(特定の状況では)に追加する必要はありません。
-
必要に応じてembedを使用できます。
HTML5を使用すると、構文的には、常に標準モードを起動する、よりクリーンで読みやすいマークアップになります。 XHTML 1.0(text / htmlとして提供)を使用する場合、ブラウザーが自動的に実行する大量のcrudを指定します(不正なdtdに対して検証するため)。
このスレッドには神話と誤解がたくさんあります。
-
XHTML 1.0はHTML 5よりも古いです。新しいボキャブラリは使用できません。実際、その主なセールスポイントは、HTML 4.01とまったく同じ語彙を使用していることです。
-
XHTML 1.2はありません-おそらくそうです。そして、それは必要ありません。 XHTML 5は、HTML 5のXMLシリアル化です。同一の語彙、異なる解析ルール。
-
HTMLは、ブラウザで真のSGMLとして扱われたことはありません。 SGML準拠のパーサーを実装したブラウザはこれまでにありません。 HTML 5はこの事実をルールにし、HTMLのシリアル化は今日の事実上の標準に従います。おそらく<!> quot; SGML-ish <!> quot;と言うことができます。
-
すでに述べたように、DTDはブラウザーで1つの目的を果たします。つまり、標準準拠モードと互換モードを区別することです。したがって、スタイルとスクリプトのみに影響します。厳密なdoctypeを使用してページでフレームを使用している場合、それらは正常にレンダリングされます。 <!> lt; embed <!> gt;さらに<!> lt; marquee <!> gt; -後者は憎むべきものであり、前者は現在の標準ではありませんが。ただし、HTML 5の一部です。
-
シリアル化、XMLまたはHTMLに関係なく、ビデオとオーディオを使用できます。それらはHTML 5とXHTML 5の両方の一部です。解析段階が終了すると、ブラウザはドキュメントの内部DOMを構築します。そのDOMは、シリアル化に関係なく、すべての実用的な目的で同じになります。はい、text / htmlで送信されたXHTMLは、doctypeに関係なく、通常のhtmlです。
XHTML 1.xとの関係セクション、HTML 5の状態:
<!> quot;この仕様は、HTMLボキャブラリのXMLシリアル化の規範的な定義としてXHTML 1.0を置き換えることを目的としています。<!> quot;
その言語は議論の余地がある(XHTML 2 WGが異議を唱え、HTML WGが違いを解決しようとしている...)が、私たちは今その立場にある。
注意事項:
- HTML 5には、XHTML 5と呼ばれるXMLシリアル化が含まれています。仕様は、細部にまでこだわっている場合の違いを説明しています
- HTMLはSGMLではありません。 Henri Sivonenは、HTML解析の歴史について素晴らしい記事を書いています
- この時点で(これまでに何度か議論が続いてきました)、HTML / XHTML 5のDTDはありません-仕様の適合要件セクションは、DTDがHTML言語の定義に適さない理由を説明しています。 HTML 5バリデータには、このトピックに関する豊富な情報も含まれています(HTML5のRELAX NGスキーマを含む)
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で(まだ)サポートされていません。
次の場合に想定される動作は何ですか 将来的に新しいHTML 5タグを使用します Firefoxのバージョンですが、DTDを使用して XHTML?
そして、HTML 5マークアップと XHTML 1.0 Trans?
選択したDTDの一部としてマークアップが実装されていない場合、論理的には、そのマークアップに従う必要はありません。ただし、ブラウザの実装は常に厳密に論理的ではありません。
これらのタグを追加したのはなぜですか XHTML?両方のXHTMLをどのようにサポートしますか およびHTML 5?
xHTMLはHTMLよりも優れているわけではありませんが、一部のアプリケーションにより適しています。 xHTMLの主な利点の1つは、XSLTを使用してさまざまな形式に変換できることです。たとえば、XSLTを使用して、xHTMLをRSSフィードまたは別のXML形式に自動的に変換できます。
両方の形式をサポートする必要はありません。それぞれの利点/欠点をプロジェクトの要件で比較検討してください。 HTML 5はおそらくしばらくの間標準ではなくなるでしょう。
(X)HTML5は次のバージョンです。 XHTML5が十分にサポートされるまで、XHTML1.1を使用する必要があります。
おそらく、HTML5の後方互換性SGMLプロファイルを使用しないでください。スクレーパーや小さなパーサーの場合、物事が難しくなります。
doctype は、HTML5またはXHTMLのどちらを使用しているかをブラウザに通知します。あるdoctypeから別のdoctypeのドキュメントにタグを押し込むだけでは機能しません。 Doctypeがなければ、とにかくすべてタグスープになります。
99%の人がブラウザで適切に表示できない場合、ビデオ/オーディオタグなどを使用しないでください。これら2つの例のいずれについても、FLVの使用をお勧めします。
XHTMLに追加しない理由については、まず1.0は最新バージョンではなく、1.1は少し前にリリースされました。
最終的には標準化され、これらのタイプのタグは両方の標準に表示されますが、現時点では、できるだけ多くの人がコンテンツを表示できるようにするためにできることを行います。