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

推薦する

ハイパーリンクに関するいくつかの質問

<br />ポテトチップスパーティーのこのエピソードに参加して、何人かの友達に会えてとて...

MySQL のフィールドにデフォルトの時間を追加する方法

日付型の違いと用途MySQL には、日付、時刻、年、日付時刻、タイムスタンプの 5 つの日付タイプが...

jQueryをベースにカルーセル効果を実現する

この記事では、カルーセルマップの効果を実現するためのjQueryの具体的なコードを参考までに共有しま...

uniapp アプレットでウォーターフォール フロー レイアウトを実装するためのアイデアとコード

1. はじめに今、ウォーターフォールフローについて書くことは、古い内容の焼き直しと見なされますか?気...

mysql の not equal to null と equal to null の書き方の詳細説明

1. テーブル構造 2. 表データ 3. クエリのteacher_nameフィールドは空にすることは...

MySQL ディープページング問題の解決の実践記録

目次序文ディープページングを制限すると遅くなるのはなぜですか?サブクエリによる最適化B+ツリー構造の...

Windows Server 2016 標準キー アクティベーション キー シリアル番号

Windows Server 2016 アクティベーション キーを皆さんと共有したいと思います。wi...

MySQL 最適化: キャッシュ最適化 (続き)

MySQL 内部には至るところにキャッシュがあります。MySQL のソースコードを読むと、キャッシ...

Mac で Docker を使用して Oracle をデプロイする方法

Mac で Docker を使用して Oracle をデプロイする方法まずdockerをインストール...

{{ }} で関数を直接使用する WeChat アプレットの例

序文WeChat アプレット開発 (ネイティブ wxml、wxcss) で、{{ }} 内で直接メソ...

Dockerコンテナ内のホストのホスト名が取得できない問題の解決方法

Node.js環境でテストが通っています。他の言語でも同様です。環境変数を取得する方法を使うだけです...

Vue echarts は棒グラフの動的な表示を実現します

この記事では、棒グラフの動的な表示を実現するためのvue echartsの具体的なコードを参考までに...

HTML における src と href の違いについての簡単な説明

簡単に言うと、srcは「このリソースをロードしたい」という意味で、hrefは「このリソースに関連付け...

Linux のバックグラウンドで実行するいくつかの方法 (まとめ)

1. ノーフープハングアップ信号を無視してプログラムを実行する追加メモnohup コマンドは、ハン...