XHTML チュートリアル: Transitional と Strict の違い

XHTML チュートリアル: Transitional と Strict の違い

実際、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 DOCTYPEs は旧時代から新時代への移行のみを対象としており、Strict DOCTYPEs は HTML 4.01 および XHTML 1.0 の構築に適用可能なデフォルトのドキュメント宣言です。
コードには古い記述方法が多すぎるため、一度に Strict DOCTYPE に完全に変換することが難しいため、一般的に Transitional DOCTYPE が使用されます。しかし、厳密な DOCTYPE が目標となるはずです。構造とプレゼンテーションを分離し、プレゼンテーション コードを CSS で記述することが推奨され、場合によっては強制されることもあります。 HTML 4 ドキュメントタイプ定義:

この HTML 4.01 Strict DTD には、プレゼンテーション レイヤーの属性とタグは含まれていません。W3C は、これらの属性とタグを段階的に廃止する予定です。これらを実装するには、スタイル シートを使用できます。 Strict DTD を使用する必要があります。プレゼンテーション属性とタグのサポートを得るには、Transitional 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 の違い」、「Strict XHTML と Transitional XHTML の比較」、および「DTD による XHTML1.0 要素属性」を参照してください。
Strict に移行する準備ができている人にとって、開発者が間違いを犯す可能性のある 2 つの違いがいくつかあります。これについては次に説明します。 Strict DOCTYPE でサポートされていないタグ center font iframe srike u Strict DOCTYPE でサポートされていない属性 align (table 関連でサポート: col、colgroup、tbody、td、tfoot、th、thead、tr) language background bgcolor border (table でサポート) height (img と object でサポート) hspace name (HTML 4.01 Strict でサポート、XHTML 1.0 Strict の form と img ではサポートされていない) noshade nowrap target text、link、vlink、alink vspace width (img、object、table、col、colgroup でサポート) コンテンツ モデルの相違点 要素タイプのコンテンツ モデルは、その要素タイプのどのようなインスタンスを含めることができるかを説明します。この点において、2 つのドキュメント宣言の最大の違いは、blockquote、body、および form 要素には次のようなブロック レベル要素のみを含めることができることです。テキストと画像は body に直接含めることができず、p や div などのブロック レベル要素によって含める必要があります。入力要素は、form 要素の次のレイヤーに直接含めることはできません。blockquote 要素内のテキストは、p や div などのブロック レベル要素によって含める必要があります。すべてのプレゼンテーションを CSS に任せ、Strict 標準に準拠します。Strict DOCTYPE への移行プロセスでは、各要素がどのように見えるかを知るよりも、各要素が何をするのかを理解する方がはるかに効果的です。
まず構造とセマンティクスについて考え、次にパフォーマンスについて考えます。

<<:  Vueはデジタル千単位区切り形式をグローバルに実装します

>>:  一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

推薦する

問題におけるJS演算子の調査

問題は、誰もが「メモリ リーク」について知っていることです。一般的なシナリオはいくつかあります。クロ...

React+Typescriptはカウントダウンフックメソッドを実装します

まず、setIntervalはフックとしてカプセル化されます👇 'react' から...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

Vue-cliフレームワークはタイマーアプリケーションを実装します

技術的背景このアプリケーションは vue-cli フレームワークを使用し、カスタム コンポーネント ...

主軸上のFlex子要素の比率を制御する方法

背景フレックス レイアウトにより、配置とスペースの割り当てがより効果的に実現されます。最近、flex...

JS はシンプルなカレンダー効果を実装します

この記事では、シンプルなカレンダー効果を実現するためのJSの具体的なコードを参考までに紹介します。具...

nginx共有メモリの仕組みの詳細な説明

Nginx の共有メモリは、高いパフォーマンスを実現できる主な理由の 1 つであり、主にファイル キ...

反応自動構築ルーティングの実装

目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...

MySQL 中断された接続警告ログの分析

序文:場合によっては、MySQL に接続されたセッションが異常終了することが多く、エラー ログに「通...

MySQL ファントムリードとその排除方法の詳細な説明

目次トランザクション分離レベルファントムリーディングとは何ですか?ファントムリードを排除する方法要約...

EXPLAIN を使って MySQL の SQL 実行プランを分析する方法

序文MySQL では、EXPLAIN コマンドを使用して、テーブルの接続方法や SELECT ステー...

TypeScript 名前空間のマージの説明

目次同じ名前の名前空間をマージする名前空間とその他の種類のマージ同じ名前の名前空間とクラスをマージす...

DOCTYPE 文書型宣言 (Web ページ愛好家必読)

DOCTYPE 宣言 作成するすべてのページの先頭に、ドキュメント宣言が必要です。はい、そうでしょう...

Linuxにソフトウェアをインストールするいくつかの方法の詳細な説明

1. RPM パッケージのインストール手順: 1. soft.version.rpm などの対応する...

Centos サーバーに MySql をデプロイし、Navicat に接続するプロセスの詳細な説明

(1)サーバー構成: [root@localhost ~]# cd /usr/local/src/ ...