無視された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 で垂直方向の中央揃えを実装するいくつかの方法の概要

推薦する

Vue の echarts ツールチップにクリック イベントを追加する詳細な説明

目次必要回避策1. ツールチップを設定する2. hookToolTip変数を定義する3. メソッド内...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

HTML ページをズームアウトした後にスクロール バーを表示するためのサンプル コード

ここでは、HTML ページのサイズを縮小した後に下部にスクロール バーを表示し、スクロール バーをス...

Ubuntu 18.04 に vsftpd をインストールするための実装コード

vsftpdをインストールする $ sudo apt-get install vsftpd -y v...

React Nativeプロジェクトフレームワークの構築経験

React Native は、2015 年 4 月に Facebook によってオープンソース化され...

Linuxでユーザーが所属するグループを変更する方法

Linuxでユーザーが所属するグループを変更する1. ユーザーのグループを設定する usermod ...

Vue 3 で Vue Router リンクを拡張する方法

序文<router-link> タグは、Vue アプリ内のさまざまなページ間を移動するた...

Linux での Python スクリプトの自動起動とスケジュール起動の詳細な手順

1. Pythonは起動時に自動的に実行されますPython の自己起動スクリプトがauto.pyで...

Dockerはコンテナポートバインディングのローカルポートを実装します

今日、イメージを起動した後、HTTP リクエスト経由でアクセスできないという小さな問題が発生しました...

Centos7 に Zabbix3.0 をインストールするための非常に詳細な手順

序文最近、同社の業務の一部がコンピュータルームに移転し、ホストリソースの監視と管理をより便利に行うた...

HTML テーブルタグと関連する改行の問題の詳細な分析

テーブルとは何ですか?テーブルは、データのキャリアである HTML テーブルです。以下は比較的標準的...

JavaScript スネーク実装コード

この記事の例では、参考までに貪欲なスネークを実装するためのJavaScriptの具体的なコードを共有...

MySQLは複数テーブル関連統計(サブクエリ統計)の例を実装します

この記事では、例を使用して、MySQL で複数テーブルの関連統計を実装する方法について説明します。ご...

Vue.js での VNode の使用

VNodeとはvue.js には VNode クラスがあり、これを使用してさまざまな種類の vnod...