DOCTYPE HTMLを使用する理由

DOCTYPE HTMLを使用する理由
これがないと、ブラウザはページをレンダリングするときに Quirks モードを使用することがわかっています。また、ブラウザによって Quirks モードでのレンダリングの仕方が異なることもわかっています。したがって、次のような doctype を記述します。

コードをコピー
コードは次のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

幸いなことに、さまざまな Web 開発ツールは現在、テンプレート コードの挿入をサポートできるほど強力になっているため、この長くて面倒な doctype を 1 文字ずつ入力する必要はありません。しかし、もう十分だと思ったら、これを試してみてください:

コードをコピー
コードは次のとおりです。

<!DOCTYPE html>

わあ、とても簡潔ですね!メリットは明らかです。1. 間違いを心配せずにこの doctype を簡単に記述できます。2. 約 105 バイトの文字を節約できます。毎日数千万の PV があるサイトの場合、かなりのトラフィックを節約できます。3. 下位互換性があります。はい、html5 doctype はこのように記述され、最新のブラウザーはそれを認識します。

もしあなたも私と同じように、 DTD を指定しないとブラウザの奇妙なモードがオンになると思っていたなら、それは間違いです。正しい記述は、Quirks モードは doctype が定義されていない場合にのみ有効になる、つまり、特定の種類の dtd を指定せずにブラウザーが厳密モード (標準モード) でページをレンダリングできるようにするには、<!doctype html> を定義するだけでよい、というものです。すべてのブラウザには、Quirks モードと strict モード (標準モードと呼ぶ人もいます) の 2 つのモードが必要であることを確認しましょう。 Windows/Mac 版の IE 6、Mozilla、Safari、Opera はすべて両方のモードを実装していますが、IE 6 より前のバージョンは常に Quirks モードのままです。 2 つのモードについて知っておくべきことは次のとおりです。

  1. 標準化前に書かれたページには doctype がなかったため、doctype のないページは Quirks モードでレンダリングされます。
  2. 一方、Web 開発者が doctype を追加するということは、開発者が何をしているのかを理解していることを意味します。ほとんどの doctype は厳密モード (標準モード) をオンにし、ページは標準に従ってレンダリングされます。
  3. 新しいまたは不明な doctype はすべて、厳密モード (標準モード) で開始されます。
  4. 各ブラウザには、Quirks モードを有効にする独自の方法があります。このリストを参照できます: http://hsivonen.iki.fi/doctype/

注: 選択した doctype に対してページを検証する必要はまったくありません。doctype タグが存在するだけで、厳密モード (標準モード) を有効にすることができます。私の言っていることがまだ疑問に思う場合は、http://www.quirksmode.org/css/quirksmode.html#link2 にアクセスして、必要な情報を確認してください。答えを得るには、ほんの少しの JavaScript コードだけが必要です。それは次のとおりです。

コードをコピー
コードは次のとおりです。

モード=document.compatMode;

このコードを使用すると、現在のブラウザが Quirks モードか標準モードかを判断できます。このプロパティの互換性は疑う余地がありません。疑問がある場合は、http://www.quirksmode.org/dom/w3c_html.html#t11 を確認してください。テストしたいブラウザで http://wanz.im/demo/doctype-test.html にアクセスすれば、結果を見ることができます。私の知る限り、IE6 でも、Quirks モードは有効になりません。何か新しい発見がありましたら、メッセージを残してください。

<<:  ウェブページレイアウトに関する9つのヒント

>>:  MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

推薦する

IDEAでVUEプロジェクトをデバッグするための詳細な手順

js コードをデバッグするには、コード内にデバッガーを記述するか、Chrome で毎回ブレークポイン...

MySQL 8.0.23 インストールの超詳細なチュートリアル

目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

Linux での MySQL のインストールに関するチュートリアル

目次1. 古いバージョンを削除する2. サーバーのカーネルタイプを確認し、適切なバージョンをダウンロ...

開発にVscodeとdockerを組み合わせて使用​​する詳細なプロセス

序文Docker と VS Code を使用すると、ローカル開発環境全体を最適化し、プロジェクトの進...

vue-cropper コンポーネントは画像の切り取りとアップロードを実現します

この記事では、画像の切り取りとアップロードを実装するためのvue-cropperコンポーネントの具体...

HTML テーブルに複雑なテーブル ヘッダーを実装するためのサンプル コード

複雑な表を作成するには HTML を使用します。複雑なテーブルでは通常、td の rowspan 属...

MySQL および Oracle のバッチ挿入 SQL の一般的な記述例

目次例えば:一般的な執筆:要約する例えば:次に、データベースのUSERテーブルにUserオブジェクト...

入力テキストボックスの長さをコンテンツに応じて変更する方法

初め:コードをコピーコードは次のとおりです。 <input type="text&q...

純粋な CSS3+DIV で小さな三角形の境界線効果を実現するためのサンプル コード

具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...

mysql8でルートユーザーのパスワードをリセットする手順を完了します

序文最近、多くの新しい同僚がこの質問をしてきました。特に、homebrew を通じて自動的にインスト...

Vue で Axios カプセル化を使用するための完全なチュートリアル

序文現在、プロジェクトでは、Axios ライブラリが HTTP インターフェース リクエストによく使...

Linux コマンド sort、uniq、tr ツールの詳細な説明

並べ替えツールLinux の sort コマンドは、テキスト ファイルの内容を並べ替えるために使用さ...

Vue3とElectronを使ったデスクトップアプリケーションの詳しい説明

目次Vue CLIはVueプロジェクトを構築しますVue プロジェクトをマークダウン エディターに変...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...