DOCTYPEとは何ですか?


174
  • DOCTYPEとは何ですか?なぜそれを使用したいのですか?
  • 使用できるDOCTYPEは何ですか?
  • 標準モードと互換モードの違いは何ですか?また、DOCTYPEの設定が異なる場合に遭遇する可能性があるいくつかの互換性とは何ですか?

最後に、私が使用すべき適切なDOCTYPEは何ですか?


9
これはwikiではないのですか?
アレックス

回答:


76

基本的に、DOCTYPEはページで使用されるHTMLを記述します。

また、ブラウザーはDOCTYPEを使用して、ページのレンダリング方法を決定します。DOCTYPEを含めないか、正しくないものを含めると、癖モードがトリガーされる可能性があります。

ここでのキッカーは、Internet ExplorerのquirksモードがFirefox(および他のブラウザー)のquirksモードとはかなり異なるということです。つまり、標準モードでレンダリングする場合よりも、互換モードがトリガーされた場合にすべてのブラウザーでページが一貫してレンダリングされるようにするのは、はるかに困難な作業になります。

ウィキペディアには、さまざまなDOCTYPEを使用した場合のレンダリング違いに関するより詳細な要約があります。XHTMLは特定のDOCTYPEによって有効にされ、XHTMLで十分にカバーされているXHTMLの使用(神話と現実)についてはかなりの議論があります。

HTML5 DOCTYPE(HTML5 <!DOCTYPE html>より前のバージョンでは、「細いdoctype」としてのみ知られ、古いブラウザでは標準化されたレンダリングをトリガーしない)など、さまざまな「標準準拠」のレンダリングDOCTYPEと、このような他のDOCTYPEとの間には微妙な違いがあります。 HTML 4.01トランジショナル:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

39
最近私はHTML5 DOCTYPEを好みます:<!DOCTYPE html> IE6を含むすべての最新ブラウザーで動作します。
Walter Rumsby

53

26

DOCTYPEは、消費するユーザーエージェント(Webブラウザー、Webクローラー、検証ツール)に、ファイルの種類をドキュメントに通知します。これを使用すると、コンシューマーが意図したとおりにHTMLを正しく解析できるようになります。

HTML、XHTML、およびフレームセットにはいくつかの異なるDOCTYPEがあり、それぞれにStrictとTransitionalの2つのモードがあります。Strictは、マークアップが定義された標準を正確に使用していると言います。詳細については、W3C DTDページを参照してください。

Quirksmodeは基本的に、標準がはるかに尊重され、定義されていなかったブラウザー戦争の時代のレイアウト方法です。通常、有効な標準モードのページは、さまざまなブラウザーでより一貫してレイアウトされますが、必要な特定の機能が欠けている場合があります。そのような機能の1つは、アンカータグのターゲット属性です。Quirksmodeのサイトでは、これらの違いのための素晴らしいリソースです。

最後に、新しいHTML5標準は非常に単純なDOCTYPEを使用することを提案しています。

<!DOCTYPE html>

このDOCTYPEの使用は、ページが標準モードでHTMLであることを指定するための上位互換性のある方法です。これはGoogleが使用する方法であり、かなり覚えやすいものです。XHTMLを使用する予定がない限り、このDOCTYPEを使用することをお勧めします。


2
DOCTYPE HTMLタグですか?もしそうなら、なぜこれを最初に必要とするのですか?
CuriousMind 2015年

2
@vipinkoul DOCTYPEタグは、ユーザーエージェントに送信するHTMLドキュメントのタイプを指定します。HTML、XHTML、フレームセットのいずれかです。また、Strict HTML / XHTML / FramesetまたはTransitional HTML / XHTML / Framesetの場合もあります。主にこれは、エラーが発生したときのパーサーの反応に影響します。
Rob

6

doctypeは、ドキュメントが使用するHTML / XHTMLのバージョンを定義します。doctypeを使用して、バリデーターを通じてコードを実行するときに、バリデーターがチェックするHTML / XHTMLのバージョンを認識できるようにします。このページは良い概要を提供します:

doctypeを追加することを忘れないでください

使用できる一般的なdoctypeは次のとおりです。

DTDの推奨リスト

どのdoctypeを使用するかは、使用しているコードによって異なりますが、アイデアを得るには、W3Cバリデーターでコードを実行し、[その他のオプション]メニューの[ ドキュメントタイプ ]ドロップダウンメニューを使用して、さまざまなdoctypeを試してみてください。

W3Cマークアップ検証サービス


3

Webページで使用されるHTML(XHTMLを含む)では、DOCTYPEは、DOCTYPEの正確なスペルに応じて、いくつかのブラウザーモード(互換モード、標準モード、ほぼ標準モード)の1つをトリガーする文字列です。これを使用して、ページに最適なブラウザモードを選択します。

正式には、SGMLおよびXMLでは、DOCTYPE宣言は、マークアップ言語の正式な構文規則を指定するドキュメントタイプ定義(DTD)への参照です。ブラウザーがDTDを使用したり、アクセスしたりしたことはありません。ただし、HTML5モードを除き、SGMLおよびW3C Markup ValidatorなどのXMLマークアップバリデーターによって使用されます。したがって、DOCTYPEの選択によって、ドキュメントが送信された場合のバリデーターの動作が決まります。ただし、バリデーターの動作モードは、ユーザーインターフェイスでも選択できます。(SGMLおよびXMLプロセッサーは他の方法でDOCTYPEを使用する場合もありますが、問題は明らかにHTMLコンテキストとWebブラウザーおよび密接に関連するソフトウェアに限定されることを意図しています。)

DOCTYPEの正式なリストはありません。各HTML仕様またはドラフトは、独自のDOCTYPE、またはDOCTYPEを定義します。モードの選択時にブラウザーが認識するDOCTYPEのセットは、ブラウザーによって異なります。HTML5にもいくつかの「レガシーDOCTYPE」がリスト<DOCTYPE html> されていますが、実際には、HTML5定義されている以外のDOCTYPEを使用する理由はありません。標準モード(新しいページに推奨)が必要な場合はそのDOCTYPEを使用でき、互換モード(レガシーページに必要な場合があります)が必要な場合はDOCTYPEを使用できません。

「標準モード」とは、通常、ブラウザがHTML、CSS、DOM、およびその他の仕様にできる限り準拠する動作モードを意味します。通常、これは完全な適合を意味するものではありません。「Quirksモード」はブラウザによって異なりますが、一般的にはIE 5のような非常に古いブラウザの動作を模倣しようとする試みを意味します。目的は、古いページを機能とバグに依存する可能性があるという前提の下で、古いページを機能させることです古いブラウザ。説明を参照Quirksモードではどうなりますか?HTML5には、「クイズモード」というやや異なる、より限定的な概念があり、クイズモードリビングスタンダードと呼ばれるドキュメントによく似ています。

典型的な問題は、Quirksモードと標準モードで要素の幅が異なる方法で計算されることです。これは、Quirksモードで動作するように設計されたページが標準モードで表示された場合(またはその逆)、ページのレイアウトが多少変更されたり、完全に混乱したりする可能性があることを意味します。

したがって<!DOCTYPE html>、新しいページに使用し、古いページに使用していたDOCTYPE(存在する場合)を保持する必要があります。

ただし、互換モードは、一部のブラウザではCSSの多くの新機能がサポートされていないことを意味します。つまり、CSS3機能を使用して古いページを拡張する場合は、標準モードをトリガーするDOCTYPEに切り替える必要がある場合があります。このような場合、ページを確認してテストし、標準モードで実行されるかどうかを確認する必要があります。


余分な詳細、特別にこれらのもののためにありがとう:«ませブラウザは、これまで何のためのDTDを使用していない、あるいはそれらにアクセス»«以外のDOCTYPEを使用する理由はないと<DOCTYPE html>HTML5で定義された »は。
アームフット

2

Doctypeは、ページが記述されている言語(HTMLまたはXHTML)をブラウザに伝えます。例えば、

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

ページをとしてレンダリングするようブラウザに指示しますHTML4 strict。古いブラウザはページを正しくレンダリングしていなかったため、新しいブラウザは古いdoctypeを見つけると、古いブラウザのエラーをシミュレートします。

今日は、少なくともHTML4以上のXHTMLを使用する必要があります。

doctypeに関するブログエントリは、正しいDOCTYPEでサイトを修正するです。A List Apartから)。


1

まず第一に、あなたが使用すべきDoctypeは1つではありませんが、ほとんどのデザイナーはそれをXHTML 1.0 Strict内で機能させようとします。

doctypeは、html内で使用できるタグの宣言にすぎません(ブラウザーは定義されたものより多かれ少なかれ使用できます)実際にdoctypeファイルを開いて読み取りを開始できます(XHTML 1.0 Strict

doctypeを指定しない場合、ブラウザーは推測するように最善を尽くしますが、常に正しいタイプにヒットするわけではありません。

Quirksモードは、下位互換性を保つためにブラウザーで使用される手法にすぎません。Quirksモードの良い例は、IEがボックスをレンダリングする方法です。


1

doctypeは、xhtmlのようなドキュメントのコンテンツが(Webページのように)どのように見えるかを説明するドキュメントです。注:これは上記のページの構文のみを定義し、ページのレンダリングはDTDによって定義されません!

たとえば、doctypeは、<table>-tagがどのように見えるか、どの属性を受け入れるか、各属性でどの値/値タイプを受け入れるかを定義できます。それをあなたの現在のウェブページの辞書と考えてください。

ウィキペディアは、一般的に使用されているさまざまなDoctypeに関する情報ページがあります。ご注意ください-独自のdoctypeの作成を妨げるものはありません。ただし、ブラウザがドキュメントのレンダリング方法を認識していない可能性があります。

使用するDTDは、作成する内容によって異なります。たとえば、XHTMLにはHTMLとはまったく異なるDTDがあります。


1

Webでは、doctypeは、標準、ほぼ標準、または互換モードが必要かどうかをブラウザに伝えるだけです。

Quirksモードの変更点はブラウザーによって異なります。Firefox、Opera、Safari、およびChromeは、<table><tr><td><img></td></tr></table>(ソリューション:)のようなコードでテキストディセンダーのスペースを削除するなど、限られた一連の癖を実装していますtd img { vertical-align:bottom; }。一方、IEはIE5.5のレンダリングエンジンに戻ります。あなたが使用することができなくなることを意味することに任意の 2000年から実施し、新機能のを。

標準モードをトリガー<doctype html>するには、覚えやすいので、HTML5 doctypeを使用することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.