無視されたDOCTYPE記述の分析

無視されたDOCTYPE記述の分析
doctype もその 1 つです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
1. doctype とは何ですか? doctype タグは、ドキュメントの dtd (文書型定義) を指定するために使用され、次のように各 HTML の先頭に記述されます。
<!DOCTYPE RootElement 可用性 "URI" [宣言]>
いくつかの一般的な doctype の例:
HTML 4.01: 厳密<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 移行<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 移行//EN" "http://www.w3.org/TR/html4/loose.dtd">
XHTML 1.1 厳密な DTD<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 厳密な//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2. doctype で何ができるのか? <br />doctype が指定されているかどうか、または異なる doctype が指定されているかどうかによって、異なるブラウザ モードがアクティブになり、HTML、CSS、JS に何らかの影響が及びます。その中で最も有名なのは、いわゆるボックス モデル問題です。
2.1 なぜ複数のモードがあるのですか? 昔、Netscape と IE が覇権を争っていた頃、ブラウザ モードはブラウザ自体によって決定されていました。これは、ブラウザがあまりにも強力だったためです。時は流れ、あっという間に戦国時代。皆が最終決定権を持っていたら世の中は混乱してしまうと気づき、リーダーを選出する議論が起こり、W3C が権力を握りました。しかし、問題は再び発生します。たとえば、IE はもはや市場を独占できず、標準に準拠することが一般的な傾向です。ただし、ブラウザが標準のみをサポートする場合、以前の多くのページで問題が発生することになります。
そこで、doctype が生まれました。doctype が指定されていない場合は、Quirks モードと呼ばれるオリジナルのモードが採用されます。doctype が指定されている場合は、標準に従うモードが採用されます。これは、Standards モードと呼ばれます。この間、Mozilla を代表とする何人かの人々は、標準モードでの img の解析はあまり適切ではないと感じ、個人的な意見を保持していました。特定の doctype を指定する場合、ほぼ標準モード (Almost Standards Mode) が採用されます。具体的な詳細については、Activating Browser Modes with Doctype、または @随网之舞 の翻訳 activate browser mode with doctype を参照してください。
2.2 さまざまなモードの具体的な影響 @ppk は、Quirks モードと strict モードについて適切な概要を示しました。
3. 推奨されるdoctype
<!DOCTYPE HTML>
理由: HTML5 をサポートしています。認識されない場合は、厳密モードが使用されます。
ブラウザの互換性の問題を解決するには、img { display: block } などのリセット CSS を追加します。
現在多くの人が使用している <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> と <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> は、いくつかの主要ブラウザの Quirks モードと同等であるだけであることに注意してください。つまり、省略できます。

<<:  ウェブサイトデザインに関するヒント

>>:  CSS で垂直方向の中央揃えを実装するいくつかの方法の概要

推薦する

MySQL エラー コード 1862 の解決方法: パスワードの有効期限が切れています

ブロガーは 1 ~ 2 か月間 MySQL を使用していませんでしたが、今日この問題に遭遇しました。...

CentOS で RPM を使用して MySQL 5.6 をインストールするチュートリアル

これまでのプロジェクトはすべて Windows システム環境にデプロイされていました。今回は Lin...

Vue: メモリリークの詳細な説明

メモリリークとは何ですか?メモリ リークとは、新しいメモリが作成されたが、解放またはガベージ コレ...

nginxで静的リソースを公開する方法

ステップ準備した静的リソースファイルを指定されたフォルダに配置しますnginx 設定ファイルを変更す...

JavaScript のマクロタスクとマイクロタスクの詳細

目次1. マイクロタスクとは何ですか? 2. マクロタスクとは何ですか? 3. 事例3.1 結論4....

JSでユーザーを追跡する方法

目次1. 同期AJAX 2. 非同期AJAX 3. ユーザーのクリックを追跡する4. リバウンドトラ...

IMG での UserMap の使用例

usemap は <img> タグの属性であり、使用するイメージ マップの名前を指定する...

Docker バインディング固定 IP/クロスホストコンテナ相互アクセス操作

序文これまでは、パイプワークで割り当てた静的 IP は一時的なものであり、再起動すると無効になってい...

VUE と Canvas を使用して Thunder Fighter タイピング ゲームを実装する方法

今日は、サンダーファイタータイピングゲームを実装します。ゲームプレイは非常に簡単です。それぞれの「敵...

特定の MySQL テーブルの完全データと増分データをメッセージ キューに同期する - ソリューション

目次1. 当初の需要2. 解決策3. 運河の導入と設置運河の仕組み建築インストール4. 検証1. 当...

HTML ハイパーリンク内の中国語文字化けの分析と解決

Vm 内のハイパーリンク URL は、Get 要求のパラメータとして中国語と連結する必要があります。...

ナビゲーションバーのドロップダウンメニューのサンプルコードを実装するためのHTML+CSS

効果コード内の画像は自分で変更できますドロップダウンメニューのHTMLコード <ヘッダークラ​...

Navicateを使用してAlibaba Cloud Server上のMySQLに接続する

1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

MySQLがトランザクション分離を実装する方法の簡単な分析

目次1. はじめに2. RC および RR 分離レベル2.1. RRトランザクション分離レベルでのク...