よく理解しましたかタグ 定義方法 使用方法

よく理解しましたか<!DOCTYPE>タグ 定義方法 使用方法
序文
今日、「<!DOCTYPE> タグを注意深く理解しましたか?」と尋ねられました。私は一瞬唖然としました。なぜなら、最初に W3cschool で XHTML Transitional DTD を使用するようにという提案を見て、それから Dreamweaver の HTML ドキュメント タイプをデフォルトで XHTML 1.0 Transitional に設定していたからです。それからは、当然のように現在まで使用しております。人間は年を取るにつれて怠惰になり、無意識のうちに多くのことを当たり前だと考えるようになるというのは本当です。聞かれたので、ちょっと調べてまとめてみました。メモだけ残しておきます〜〜

<!DOCTYPE> の定義:
<!DOCTYPE> 宣言は、ドキュメントの先頭、<html> タグの前に配置されます。このタグは、ドキュメントがどの HTML または XHTML 仕様を使用しているかをブラウザに伝えます。
このタグは、厳密なバージョン、移行バージョン、およびフレームベースの HTML バージョンを表す 3 つの DTD タイプを宣言できます。 (ドキュメント内のマークアップが doctype 宣言で指定された DTD に従っていない場合、ドキュメントはコード検証に合格できないだけでなく、ブラウザーで正しく表示されない可能性があります。)

<!DOCTYPE> の使用法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">分析: 上記の宣言では、ドキュメントのルート要素が html であることが宣言されています。これは、パブリック識別子が "-//W3C//DTD XHTML 1.0 Strict//EN" として定義されている DTD で定義されています。ブラウザは、この公開識別子に一致する DTD を見つける方法を知っています。見つからない場合、ブラウザはパブリック識別子に続く URL を DTD を検索する場所として使用します。
- : 組織名が登録されていないことを示します。 Internet Engineering Task Force (IETF) と World Wide Web Consortium (W3C) は登録された ISO 組織ではありません。
+ はデフォルトで、組織名が登録されていることを示します。
DTD: パブリック テキスト クラス、つまり参照されるオブジェクトのタイプを指定します。 デフォルトは DTD です。
HTML: 参照されるパブリック テキストの一意の説明的な名前であるパブリック テキストの説明を指定します。その後にバージョン番号が続く場合があります。デフォルトは HTML です。
URL: 参照オブジェクトの場所を指定します。
厳密: W3C の専門家が段階的に廃止することを望んでいるすべての代表的な属性と要素を除外します。

HTML ドキュメントには 3 つの種類があります。
HTML 4.01 では、Strict、Transitional、Frameset の 3 つのドキュメント タイプが指定されています。
a) プレゼンテーション層を乱雑にせずにクリーンなマークアップが必要な場合は、HTML Strict DTD タイプを使用します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd">
b) 移行型 DTD には、W3C がスタイル シートに移動することを想定しているプレゼンテーション属性と要素を含めることができます。ユーザーがカスケーディング スタイル シート (CSS) をサポートしていないブラウザーを使用していて、HTML のプレゼンテーション機能を使用する必要がある場合は、移行型 DTD タイプを使用します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd">
c) フレームセット DTD はフレームを含むドキュメントに使用されます。 Frameset DTD は、frameset 要素が body 要素に置き換わる点を除いて、Transitional DTD と同じです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 フレームセット//EN" " http://www.w3.org/TR/html4/frameset.dtd">

3 つの XML ドキュメント タイプ:
XHTML 1.0 では、Strict、Transitional、Frameset の 3 つの XML ドキュメント タイプが指定されています。
a) プレゼンテーション層を乱雑にせずにクリーンなマークアップが必要な場合は、XHTML Strict DTD タイプを使用します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
b) 移行型 DTD には、W3C がスタイル シートに移動することを想定しているプレゼンテーション属性と要素を含めることができます。ユーザーがカスケーディング スタイル シート (CSS) をサポートしていないブラウザーを使用していて、HTML のプレゼンテーション機能を使用する必要がある場合は、移行型 DTD タイプを使用します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
c) フレームセット DTD はフレームを含むドキュメントに使用されます。 Frameset DTD は、frameset 要素が body 要素に置き換わる点を除いて、Transitional DTD と同じです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 フレームセット//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

正しい doctype を選択してください:
正しい doctype 宣言を取得するには、ドキュメントが従う標準に dtd を対応させることが重要です。
たとえば、ドキュメントが xhtml 1.0 strict 標準に準拠していると仮定すると、ドキュメントの doctype 宣言は対応する dtd を参照する必要があります。
一方、DOCTYPE 宣言で XHTML DTD を指定しても、文書に旧形式の HTML タグが含まれている場合は不適切です。同様に、DOCTYPE 宣言で HTML DTD を指定しても、文書に XHTML 1.0 Strict タグが含まれている場合も不適切です。
有効な doctype 宣言が指定されていない場合、ほとんどのブラウザは組み込みのデフォルトの dtd を使用します。この場合、ブラウザは組み込みの DTD を使用して、指定したタグを表示しようとします (ただし、これはページが非常に不適切に記述されている場合に発生します)。
Jingdong、Taobao、Blog Garden を調べたところ、すべてこれを使用しています (私はいつもこれを使用しています)。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
しかし、Baidu や Google が「<!doctype html>」を使用していることがわかったので、情報をよく確認してみると、HTML5 でもこれを直接使用していることがわかりました。ただし、HTML 5 は SGML ベースではないため、DTD を参照する必要はありませんが、ブラウザの動作を規制する (ブラウザが期待どおりに動作できるようにする) ために doctype が必要です。

今後は「<!doctype html>」を直接使用することをお勧めします。<!doctype html>を使用すると、ブラウザの標準互換モードが有効になります。標準互換モードでは、他のバージョンのInternet Explorer(IE6より前のバージョンは無視)との互換性は保証されません。ドキュメントのレンダリング動作は、将来のInternet Explorerと異なる場合がありますが、お気軽にご利用ください~~

ヒント:
XHTML 1 は HTML 4.01 の XML バージョンであり、上位互換性のない形式です。
HTML 4.01 は SGML に基づいているため、HTML 4.01 の doctype には DTD への参照が必要です。
SGML は、文書に説明タグを埋め込むための標準形式と、文書構造を記述するための標準方法を指定します。現在 WEB で使用されている HTML 形式は、固定されたタグのセットを使用する SGML 文書です。

<<:  ウェブサイトのユーザーエクスペリエンスデザイン(UE)

>>:  フローティングカスタマーサービス効果を実現するCSS

推薦する

MySQL のダウンロードとインストールの詳細グラフィックチュートリアル

1. MySQLデータベースをダウンロードするには、公式Webサイトにアクセスしてください:http...

Pythonで書かれたWebアプリケーションをDockerでデプロイする実践

目次1. Dockerをインストールする2. コードを書く3. Dockerfileを書く4. 画像...

Rabbitmq heartbea ハートビート検出メカニズムの原理の分析

序文RabbitMQ を使用する場合、一定期間クライアントと RabbitMQ サーバーの間でトラフ...

VMware vCenter の不正な任意ファイルアップロードの脆弱性 (CVE-2021-21972) について

背景CVE-2021-21972 VMware vCenter における認証されていないコマンド実行...

JS 正規マッチングの落とし穴の記録

最近、JS の正規表現マッチングの落とし穴を発見したのですが、その時はあまりにも奇妙だったので、何か...

React における setState の同期または非同期の問題の理解

目次1. setState は同期的ですか?非同期ですか? 2. 非同期的に動作する1. React...

MySQL コール初心者が犯しがちな 11 の間違いのまとめ

序文セキュリティ部門からSQLインジェクションやXSS攻撃の脆弱性などに関する警告メールを頻繁に受け...

要素動的ルーティングブレッドクラムの実装例

マスターするには: localStorage、コンポーネントのカプセル化えーと、GIF に変換したビ...

Vue で Baidu Map を呼び出して経度と緯度を取得する

プロジェクトでは、現在地の緯度経度を取得したり、場所を検索して緯度経度情報を取得したりする必要があり...

Vueスロットの実装原理についての簡単な説明

目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...

mysql のファイル mysql-bin.000001 とは何ですか? 削除できますか?

ポートを使用して MySQL をインストールした後、しばらくすると /var の容量が不足しているこ...

HTML における DOM 要素のスクロールバースクロール制御の詳細な説明

dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...

JavaScriptを使用して独自のAjax関数を定義する

ネイティブJSによって開始されたネットワークリクエストは、クエリ文字列の形でサーバーに送信されるため...

MySQLのトランザクション管理操作の詳細な説明

この記事では、MySQL のトランザクション管理操作について説明します。ご参考までに、詳細は以下の通...

Vue3 シングルファイルコンポーネントのスタイル機能の詳細な説明

目次スタイルスコープスタイルモジュール状態駆動型動的CSS要約するスタイルスコープ注意事項:スタイル...