実際、XHTML 1.0 は、Transitional DOCTYPE と Strict DOCTYPE の 2 つのタイプ (Frameset DOCTYPE を追加すると 3 つのタイプになります。これについてはこの記事では説明しません) に分かれています。また、HTML 4.01 にも同じドキュメント ステートメントがあります。
今日の Web 標準の推進では、XHTML は HTML よりも厳格であるとよく言われます。もちろん、それはある意味では真実です。たとえば、すべてのタグが閉じられている必要があります。引用した。しかし実際には、XHTML 1.0 は Transitional DOCTYPE と Strict DOCTYPE の 2 つのタイプ (Frameset DOCTYPE を追加すると 3 つのタイプになります。これについてはこの記事では説明しません) に分かれています。 HTML 4.01 にも同じドキュメント ステートメントがあります。
文字通りの意味がわかります: Transitional DOCTYPE は単に古い時代から新しい時代への移行を実現するためのものであり、Strict DOCTYPE はデフォルトの文書宣言であり、これは非常に重要です。 HTML 4.01 および XHTML 1.0 の構築が適用されます。
Transitional DOCTYPE を使用するのは、通常、コードに古い記述メソッドが多すぎて、一度に Strict DOCTYPE に完全に変換することが難しいためです。ただし、厳密な DOCTYPE を目標にする必要があります。これは、構造をプレゼンテーションから分離し、すべてのプレゼンテーション層のコードを CSS で記述することを奨励し、場合によっては強制することもあります。 HTML 4 ドキュメント タイプの定義:
この HTML 4.01 Strict DTD には、プレゼンテーション層の属性とタグが含まれていません。W3C は、これらの属性とタグを段階的に廃止する予定です。これを実現するには、スタイル シートを使用します。プレゼンテーションのプロパティとタグをサポートするには、厳密な DTD を使用する必要があります。
Strict DOCTYPE を使用すると、ブラウザが最も厳格で (ある程度) 最も標準に準拠したモードを使用してページをレンダリングできるという利点もあります。
Tommy Olsson は、Web Standards Group の Tommy Olsson への 10 の質問の中で、Strict を使用する利点を非常にうまく説明しています。
HTML 4.01 Strict であろうと XHTML 1.0 Strict であろうと、Strict DTD を使用することは、HTML を使用するか XHTML を使用するかを議論することよりもはるかに重要だと思います。それは将来のインターネットの品質を表します。構造とプレゼンテーションが分離されるため、サイトの保守が非常に簡単になります。
Web 標準や正しいセマンティック構造に慣れていない人にとっては、Transitional DOCTYPE と Strict DOCTYPE の違いを理解することが重要です。より詳細なリストについては、「XHTML: Strict と Transitional の違い、DTD による Strict と Transitional XHTML および XHTML1.0 要素属性の比較」を参照してください。
Strict への移行を準備している人のために、開発者が間違いを犯す可能性のある 2 つの違いがいくつかあります。これについては次に説明します。
Strict DOCTYPE ではタグがサポートされない
中心
フォント
iframe
ストライク
あなた
Strict DOCTYPE ではサポートされないプロパティ
align (テーブル関連のサポート:col、colgroup、tbody、td、tfoot、th、thead、tr)
言語
背景
バックカラー
ボーダー(テーブルサポート)
高さ (img と object でサポート)
hスペース
name (HTML 4.01 Strict でサポートされていますが、XHTML 1.0 Strict の form と img ではサポートされていません)
ノーシェード
ナラップ
ターゲット
テキスト、リンク、vlink、および alink
vspace
width (img、object、table、col、colgroup がサポートされています)
コンテンツモデルの違い
要素タイプのコンテンツ モデルは、要素タイプのどのインスタンスを含めることができるかを記述します。現時点で、2 つのドキュメント宣言の最大の違いは、blockquote、body、form 要素には次のようなブロック レベルの要素のみを含めることができることです。
テキストと画像を本文に直接含めることはできず、p や div などのブロックレベルの要素に含める必要があります。
input 要素を form 要素の 1 つ下のレベルに直接置くことはできません。
blockquote 要素内のテキストは、p や div などのブロックレベル要素に含まれている必要があります。
すべてのパフォーマンスを CSS に任せ、厳格な基準を遵守します
Strict DOCTYPE に移行するプロセスでは、各要素がどのように見えるかよりも、各要素が何を行うかを知る方が効果的です。
最初に構造とセマンティクスについて考え、パフォーマンスについては後で考えます。