ホームページ  >  記事  >  ウェブフロントエンド  >  DOCTYPE宣言の機能と使い方を詳しく解説_HTML/Xhtml_Webページ制作

DOCTYPE宣言の機能と使い方を詳しく解説_HTML/Xhtml_Webページ制作

WBOY
WBOYオリジナル
2016-05-16 16:41:301641ブラウズ

1. ブラウザのレンダリング モードと doctype

一部の Web ページは標準に従って作成されていますが、多くはそうではありません。標準に準拠した Web ページを作成できない場合でも、ブラウザには標準に従ってそれらのページが正しく表示されることが必要です。現在、多くの Web ページには非標準のコードが多数含まれていますが、それらは依然として正常に動作します。実際、古いブラウザ用に設計されたほとんどのコードは、新しいブラウザでも正しく表示されます (ただし、レンダリングは異なる場合があります)。その理由は何でしょうか?実際、最新の標準に厳密に従うと、それらのページの存在基盤そのものが完全に損なわれることになります。もちろん、これは変化をもたらすことを望んでいるブラウザにとっては受け入れられません。

ブラウザレンダリングモード

最新のブラウザには、標準に準拠した Web ページと古いブラウザ用に設計された Web ページの両方をサポートするように設計されたさまざまなレンダリング モードが含まれています。このうち、Standards モード (厳密なレンダリング モード) は最新の標準に準拠した Web ページをレンダリングするために使用され、Quirks (包括的) モード (つまり、緩やかなレンダリング モードまたは互換性モード) は、設計された Web ページをレンダリングするために使用されます。従来のブラウザの場合。さらに、Mozilla/Netscape 6 では、古いバージョンの標準用に設計された Web ページをサポートするために、新しいほぼ標準モードが追加されていることに注意してください。

Doctype 切り替えとは何ですか?
Web ページの上部にある doctype 宣言は、ブラウザーを正しいレンダリング モードにするための鍵となります。ブラウザは自動的に適切なレンダリング モードに切り替わり、doctype 宣言で指定されたドキュメント タイプを正しく表示します。

理論的には、これは非常に直感的なスイッチになるはずです。現在の Web ページが標準 (つまり、HTML 4 または XHTML 1) に準拠したドキュメントであることを doctype が示している場合、ブラウザは標準モードに切り替わります。 doctype が指定されていない場合、または HTML 3.2 以前が指定されている場合、ブラウザは Quirks モードに切り替わります。このようにして、ブラウザは、古い非標準の Web ページを完全に放棄することなく、標準に準拠したドキュメントを正しく表示できます。

Doctype 切り替えの問題
ただし、Doctype 切り替えは不完全な解決策です。 Web ドキュメントで doctype 宣言を使用した場合でも、ブラウザーは予期したレンダリング モードで Web ページを表示しない場合があります。理由は、不正な形式の doctype、XHTML Web ページを含む ) の始まりの違いなど、多面的です。ただし、IE、Opera、および Safari の古いバージョンはすべて、ドキュメントの最初の行が doctype 宣言であることを想定しています。したがって、その前に他のもの (XML プロローグを含む) がある場合、Doctype は認識されません。したがって、XML プロローグが存在すると、IE、Opera、Safari は Quirks モードになります。 XML プロローグは必須ではないため、XHTML ページでは安全に省略できます。注: XML プロローグで欠落しているエンコーディング属性を補うために、http-equiv メタ タグに必ず charset 属性を含めてください。

URL または相対 URL が見つかりません:
完全な doctype 宣言に、対応する文書型定義 (DTD) ファイルの URL を含めてください。 URL が欠落している場合、または (完全修飾インターネット アドレスではなく) 相対パスが指定されている場合、doctype 宣言で指定されたモードに関係なく、ほとんどのブラウザーは Quirks モードに入ります。

不正な doctype:
ブラウザは、不正な doctype 宣言の形式と形式に非常に敏感であり、不正な形式の doctype を認識できない場合、強制的に Quirks モードになります。そのため、既知の正しい doctype を自分で入力するのではなく、コピーして文書に貼り付けることをお勧めします)。不正な形式の doctype の一般的な原因は、doctype の最初の部分と URL の間にスペースがないことです。 2 行の doctype を 1 行に折りたたむと、スペースが失われることがよくあります。

移行期間中の Doctype:
移行期間中にブラウザが Doctype を処理する場合、不整合が発生する可能性が最も高くなります。 IE と Opera は標準モードを使用し、Netscape 6 およびそれ以前のバージョンの Safari は Quirks モードを使用し、Netscape 7、Mozilla 1、およびそれ以降のバージョンの Safari は標準モードの耐障害性の高いバージョンである Netscape の Almost Standards モードを使用します。
不明な doctype:
ブラウザが認識できない doctype を処理する場合にも不一致が発生します。 IE と Opera は標準モードに入ります。つまり、認識されない doctype はブラウザにまだ統合されていない新しい標準であると想定されます。一方、Netscape 6 は、認識できない doctype に遭遇すると Quirks モードに切り替わります。
Doctype の切り替えは、さまざまなブラウザーでの不一致に気づき、さまざまな問題を積極的に回避できる場合、ブラウザーを正しいレンダリング モードにして Web ページを正しく表示する効果的な方法である可能性があります。

2. 正しい doctype 宣言を使用します

私たちは通常、ページを作成するときにこれを無視します (私も含めて、通常はブラウザのデフォルトを作成したり使用したりするのが面倒です)。Web ページのコーディング標準化が急速に進んでいる今、誰もがこの詳細を理解する必要があります。役に立ちます。ことわざにあるように、ルールのないルールはありません。

ほとんどの Web ドキュメントの先頭には doctype 宣言がありますが、多くの人はそれに注意を払いません。これは、新しいドキュメントを作成するときに Web 作成ソフトウェアがずさんに処理する多くの詳細のうちの 1 つです。 doctype は多くの人に見落とされていますが、標準に準拠する Web ドキュメントには必須の要素です。 Doctype はコードの検証に影響を与え、ブラウザーが Web ドキュメントを最終的にどのように表示するかを決定します。

doctype の役割

doctype 宣言は、読み取りプログラムが文書内のマークアップを解釈するためにどのような規則セットを使用する必要があるかを示します。 Web ドキュメントの場合、「リーダー」は通常、ブラウザやバリデータなどのプログラムであり、「ルール」は W3C によって公開されている文書型定義 (DTD) に含まれるルールです。

各 DTD には、Web ドキュメントのコンテンツをマークするために使用される一連のタグ、属性、プロパティが含まれており、どのタグを他のどのタグに含めることができるかを指定するルールも含まれています。提案されている各 Web 標準 (HTML 4 Frameset や XHTML 1.0 Transitional など) には独自の DTD があります。ドキュメント内のマークアップが doctype 宣言で指定された DTD に従っていない場合、ドキュメントはコード検証に合格せず、ブラウザで正しく表示されない可能性があります。マークアップの不一致に関しては、ブラウザはバリデータよりも寛容です。ただし、Doctype 宣言が正しくないと、Web ページが正しく表示されなかったり、まったく表示されなかったりすることがよくあります。

正しい doctype を選択してください

正しい doctype 宣言を取得するには、ドキュメントが従う標準に DTD を対応させることが重要です。たとえば、ドキュメントが XHTML 1.0 Strict 標準に従っていると仮定すると、ドキュメントの doctype 宣言は対応する DTD を参照する必要があります。一方、doctype 宣言で XHTML DTD が指定されているが、ドキュメントに古いスタイルの HTML マークアップが含まれている場合は、不適切です。同様に、doctype 宣言で HTML DTD が指定されているが、ドキュメントに XHTML 1.0 Strict マークアップが含まれている場合も不適切です。不適切。

場合によっては、doctype 宣言をまったく使用する必要がありません。有効な doctype 宣言が指定されていない場合、ほとんどのブラウザは組み込みのデフォルト DTD を使用します。この場合、ブラウザは組み込み DTD を使用して、指定したタグを表示しようとします。アドホックで急いでまとめられたドキュメント (多数あります) の場合は、doctype 宣言を省略してブラウザのデフォルト表示を受け入れることを検討することもできます。

Doctype 宣言を最初から作成し、それが選択した DTD を指すようにすることができます。ただし、ほとんどの Web ドキュメントは、W3C によって発行され、国際的に認められた Web 標準のいずれかに準拠する必要があるため、これらのドキュメントには通常、次の標準 doctype 宣言のいずれかが含まれます。

HTML 2:

HTML 3.2:

HTML 4.01 Strict: http://www.w3.org/TR/html4/strict. dtd">

HTML 4.01 移行版: http://www.w3.org/TR/html4/loose .dtd">

HTML 4.01 フレームセット:http://www.w3.org/TR/html4/frameset .dtd">

XHTML 1.0 Strict:http://www.w3.org/TR/xhtml1/DTD /xhtml1-strict.dtd">

XHTML 1.0 Transitional:http://www.w3.org/TR/xhtml1/DTD /xhtml1-transitional.dtd">

XHTML 1.0 フレームセット:http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">

XHTML 1.1:http://www.w3.org/TR/xhtml11/DTD/xhtml11 .dtd">

XHTML 1.1 プラス MathML プラス SVG:http://www.w3 .org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">

上に列挙されている doctype リスクのほかに、特別な要件があるいくつかの文書も使用されています。

doctype と呼ばれるマニュアルは通常、文書の最初であり、 およびその他の文書内容の前に置かれます。XHTML 文書では、doctype の先頭に XML 処理命令 (XML プロローグとも呼ばれます) が表示されることに注意してください。 :

ネットワークの正しい表示とテストを確実に行うためには、コンテンツとは対照的に、不正な形式でのドキュメント タイプの使用が重大な問題の先頭に立っています。

用DW设计网页時,新建文件,看代网最前倻要出次一次的东东,

http://www.w3.org/TR/html4/loose.dtd">これは、DW がネットワーク ファイルに追加した DTD 情報です。その後、ブラウザが使用する DTD を確認します。
3 つのうち、どれかを選択する DOCTYPE 開始制作符適合標準のステーションポイント、最初の件については、必要な DOCTYPE が必要です。

查看本页原代序,可以看到第一次: http://www .w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

有名なウェブ設計ソフトウェア開発会社である Macromedia や、有名な Zeldman の個人ウェブサイトなど、いくつかの符号に準拠したステーション ポイントを開くと、同様の番号が発行されます。

!DOCTYPE">http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "br">http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">br>。完全なコードは次のとおりです:

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

どの DOCTYPE を選択しますか
理想的な状況はもちろん厳密な DTD ですが、Web 標準に慣れていないほとんどのデザイナーにとっては、過渡的な DTD (XHTML 1.0 Transitional) が適しています。現在の理想的な選択 (移行 DTD も使用するこのサイトを含む)。この DTD ではプレゼンテーション層の識別子、要素、属性も使用できるため、W3C コード検証に合格することも容易になります。 注: 上記の「プレゼンテーション層の識別と属性」は、タイプセット用のテーブル、背景色の識別など、純粋にパフォーマンスを制御するために使用されるタグを指します。 XHTML では、タグはプレゼンテーションを実現するためではなく、構造を表すために使用されます。私たちの移行の目的は、最終的にデータとプレゼンテーションを分離することです。

例: マネキンが着替えます。モデルはデータ、服は表現のようなもの モデルと服が分かれているので、自由に着せ替えることができます。オリジナルの HTML4 ではデ​​ータとプレゼンテーションが混在しており、プレゼンテーション形式を一度に変更するのは非常に困難でした。あはは、この概念は少し抽象的ですが、アプリケーションのプロセス中に徐々に理解する必要があります。

補足
DOCTYPE 宣言は、すべての XHTML ドキュメントの先頭、すべてのコードとマークアップの上に配置する必要があります。

4. DOCTYPE HTML PUBLIC の正式な定義は

です。

!DOCTYPE

----------------------------------------------- --- ----------------------------------

HTML ドキュメントが従うドキュメント タイプ定義 (DTD) を指定します。

Microsoft® Internet Explorer 6 の新機能。このステートメントを使用すると、Internet Explorer 6 以降を標準互換モードに切り替えることができます。

文法

HTML の最上位要素の可用性 "登録//組織//タイプタグ//定義言語" "URL"

可能な値

最上位要素: DTD で宣言された最上位要素の型を指定します。これは、宣言された SGML 文書タイプに対応します。 HTMLのデフォルト。 HTML。

可用性: 正式公開識別子 (FPI) が公的にアクセス可能なオブジェクトであるか、システム リソースであるかを指定します。パブリックのデフォルト。パブリックにアクセス可能なオブジェクト。 SYSTEM ローカル ファイルや URL などのシステム リソース。

登録: 指定された組織が国際標準化機構 (ISO) に登録されているかどうか。 デフォルト。組織名が登録されました。・組織名が登録されていません。 Internet Engineering Task Force (IETF) および World Wide Web Consortium (W3C) は、ISO に登録された組織ではありません。

組織: !DOCTYPE 宣言によって参照される DTD (OwnerID) の作成と保守を担当するグループまたは組織の名前を指定します。 IETF IETF。 W3C W3C。

タイプ: パブリック テキスト クラス、つまり参照されるオブジェクトのタイプを指定します。 DTD のデフォルト。 DTD。

タグ: パブリック テキストの説明、つまり、参照されるパブリック テキストの一意の説明名を指定します。背面にバージョン番号を付けることができます。 HTMLのデフォルト。 HTML。

定義: ドキュメントタイプの定義を指定します。フレームセット フレームセットのドキュメント。 Strict では、スタイル シートがすでに十分に確立されているため、W3C 専門家が段階的に廃止したいと考えているすべての代表的な属性と要素が除外されます。 Transitional には、frameSet 要素を除くすべてが含まれます。

言語: パブリック テキスト言語、参照されるオブジェクトの作成に使用される自然言語エンコード システムを指定します。言語定義は ISO 639 言語コード (大文字 2 文字) として記述されています。 JP のデフォルト。英語。

URL: 参照されるオブジェクトの場所を指定します。

メモ

この宣言は、ドキュメントの先頭、HTML タグの前に指定する必要があります。

!DOCTYPE 要素には終了タグは必要ありません。

この要素は、Microsoft® Internet Explorer 3.0 の HTML で使用できます。

このステートメントを使用すると、Internet Explorer 6 以降で厳密な標準互換モードに切り替えることができます。これをオンにするには、ドキュメントの先頭に !DOCTYPE 宣言を含めて、有効なタグと、場合によっては定義や URL を指定します。

注: 標準互換モードでは、Internet Explorer の他のバージョンとの互換性は保証されません。標準互換モードがオンになっている場合、ドキュメントのレンダリング動作は Internet Explorer の将来のバージョンと異なる可能性があります。コンテンツが本質的に固定されている場合 (CD に書き込まれた場合など)、このモードは使用しないでください。

次の例は、!DOCTYPE 宣言を使用して、ドキュメントが準拠する DTD を指定し、Internet Explorer 6 以降を標準互換モードに切り替える方法を示しています。 次の例の宣言はすべて、HTML 4.0 DTD への準拠を指定しています。 2 番目の宣言では「Strict」を指定します。最初のタイプのステートメントは指定されていません。どちらのステートメントも、Internet Explorer 6 以降を標準互換モードに切り替えます。


;

次の例の宣言はすべて、「暫定」HTML 4.0 DTD への準拠を指定しています。 2 番目の宣言では、DTD の URL を指定します。最初のタイプのステートメントは指定されていません。 2 番目のステートメントは、Internet Explorer 6 以降を標準互換モードに切り替えます。最初のステートメントはそうではありません。


"http://www.w3.org/TR/html4/loose.dtd">

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。