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

よく理解しましたか<!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

推薦する

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要TCP Wrappers は TCP サービス プログラムを「ラップ」し...

HTMLのタグについての簡単な説明

0. タグとは何ですか? XML/HTML コードコンテンツをクリップボードにコピー<入力 t...

uniappのグローバル変数実装の詳細な説明

序文この記事では、uniapp グローバル変数の実装方法をいくつかまとめています。詳細な知識は、uV...

Linux NFSメカニズムの動作原理と例の分析

NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...

WeChatミニプログラムはどのようにしてユーザー情報とユーザーの電話番号を同時に取得するのか

今日ログインページを書いていたとき、個人情報と携帯電話番号を認証する必要がありましたが、ページにボタ...

Linux でのスケジュールされたタスクと遅延タスクの詳細な説明

で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...

Doubanウェブサイトのウェブサイトコンテンツに小さな変更を加える方法

<br />読みやすさはウェブサイトにとって非常に重要な部分であり、ウェブサイトの核心と...

JavaScript における var、let、const の違いの詳細な説明

目次グローバル変数として可変ホイスト一時的なデッドゾーンブロックスコープ重複したステートメント宣言さ...

Nginxホットデプロイメントの実装

目次セマフォNginx ホットデプロイメント上記のブログ投稿に従ってください。ファイアウォールをオフ...

JSONP クロスドメインシミュレーション Baidu 検索

目次1. JSONPとは何か2. JSONPクロスドメインリクエスト3. Baidu検索をシミュレー...

Zabbix上のすべてのホストのIPとホスト名を取得する

ザビックスZabbix ([`zæbiks]) は、WEB インターフェースに基づいて分散システム監...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...

Nginx の負荷分散方法の概要

負荷分散を理解するには、まずフォワード プロキシとリバース プロキシを理解する必要があります。注記:...

Docker JVM メモリ使用量の表示

1. Docker コンテナのホスト マシンに入り、指定されたイメージを実行しているコンテナ ID ...

VueのkeepAliveコンポーネントの機能と使い方の詳細な説明

序文面接中、多くの面接官は「keep-alive が何をするのか知っていますか?」と質問する際に V...