質問

タイトルが説明しているように、利用可能なさまざまなDoctypeは何ですか? IE7では、

から切り替えると、レイアウトが少し違って見えることに気付きました
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

to

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

他に何かありますか?また、影響や影響は何ですか?

ありがとう!

役に立ちましたか?

解決

Doctype 、または Document Type Declaration は、ドキュメントを Document Type Definition に関連付けます。

ドキュメントタイプの定義は、XMLドキュメントの標準です。 XMLドキュメントとXHTMLドキュメントの両方に対して、多くのDTDがあります。 XML自体には、すべてが整形式であるという要件を除いて、スキーマや特定のルールセットはあまりありません。 DTDは、より具体的なドキュメントのスキーマと考えることができます。

レンダリングモード

標準化の動きにより、最新のブラウザには実際には異なるレンダリングモードがあります(標準モード、最新のWeb標準に従ってドキュメントとCSSをレンダリングするため、および互換モード >、ブラウザはWebの初期の頃からのレンダリングのアイデアをもたらします)。これらのモードは、下位互換性のために設定されています。 Webの最初の時代に作成されたWebページの広大なランドスケープは、その時代のルールに従ってレンダリングされますが、新しいドキュメントは標準の新しい波に訴えることができます。時間が経ち、新しいフォーマットが想像されると、対応するDTDが作成される可能性があります。

ブラウザの不一致

理想的な世界では、ブラウザによって読み込まれているページは、上部のDoctypeを読み取り、それを使用してDocument Type Definitionを検索します。次に、そのDTDのスキーマを、ドキュメントの残りの部分を読み取るためのベースとして使用します。したがって、マークアップドキュメントを検証するには、Doctypeが不可欠です。 DTDは、ドキュメントが検証される標準を提供します。

残念ながら、理想的な世界ではありません。ここでブラウザは必ずしも一貫した動作をするわけではありません。そうすると、一貫した動作はDoctypeの当初のビジョンとはまったく一致しません。解析はDoctypeとは無関係に行われますが、主要なブラウザは少なくともDoctypeを調べてレンダリングモードを決定します。 Doctypeが存在しないか不完全な場合、ブラウザは quirksモードでレンダリングされる可能性があります。よく書かれた最新のドキュメントを正しく表示するには、ブラウザが標準モードでレンダリングされている必要があります。 Mozilla、Safari、およびいくつかの最近のバージョンのOperaは、実際に Almost Standards モード。移行ページ専用です。

Doctypeを変更し、ページの表示方法の変更に気付くのは、ブラウザがドキュメントの解析を試みる際にわずかに異なるルールセットを適用している可能性があるためです。結果として、結果のページは、そのすべての部分がDTDに準拠しているかどうか、または少なくともブラウザに応じて、Doctypeが示唆するレンダリングモード内でデータが検証されるかどうかによって、少し異なる場合があります。

Doctypeの選択

標準への準拠を追求するため、可能な限り厳密なDoctypeを使用する必要があります。

XHTML で記述する場合、このDoctypeは一般的です:

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

HTML 4.1 で記述する場合、これは代わりに一般的です:

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

完全を期すために、XHTMLおよびHTML 4の他の一般的なdoctypeの一部を以下に示します。

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

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

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

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

厳格なDoctypeと過渡的なDoctypeの議論

標準エバンジェリストは、Web開発者に新しいページでTransitional Doctypeの使用を停止し、代わりにStrictを使用するよう呼びかけています。繰り返しになりますが、これは理論と実践が調和するのが難しい場合です。暫定的なDoctypeの当初の希望は、レガシーWebサイトを標準準拠に移行するための中間的な家を提供することでした。暫定的なdoctypeでは、要素と属性の制限は文字通り&quot; le

他のヒント

ブラウザ気にしないどのdoctypeを使用するか(まあ、ほぼ正しい) 、使用するレンダリングモードを決定するために1つだけの目的で使用します。例参照 Fx または Operaドキュメントどのモードを使用するかを決定するために使用されるアルゴリズムの実際の例については、MSDNのどこかにIEのドキュメントがいくつか埋まっていると思います... [これは正しいページである可能性があります]( http://msdn.microsoft.com/en-us/library/ms535242(VS.85).aspx)、わかりません、ごめんなさい。

ただし、ほとんどのブラウザーには2つの主要なモードがあります(一部のブラウザーには almost標準モードも):

  • quirksモード(ブラウザの観点から見た場合、「正しい」Doctypeが見つからない場合に使用します):IEの古いバージョンが行うように、ドキュメントをレンダリングします(最も重要な違いの1つ、つまり最もレンダリングに影響するのは、一部のブラウザーが IEボックスモデルバグこのモードの場合)、
  • および標準モード(ブラウザが正しいと判断したDoctypeを見つけたときに使用):標準の指示に従って実行してください。

(非標準) document.compatMode プロパティを使用して、現在のドキュメントのレンダリングに使用されたモードを確認します。

(XHTMLに関する注意:ドキュメントをHTML( text / html )として提供すると仮定しました。ドキュメントをXHTML(おそらく application / xhtml + xml )ほとんどのブラウザは直接標準モードにジャンプし、Doctypeはまったく気にしません。)

ところで:他の回答の推奨事項(または推奨事項のように見えたもの)が壊れている、移行 DTDは、新しいドキュメントでは使用しないでください。常にstrict(&quot; strict&quot;という用語は誤解を招く恐れがあるため、&quot; default&quot;または他の怖くないものを使用してください)、ピリオド:

  

作成者は、可能であればStrict DTDを使用する必要がありますが、プレゼンテーションの属性と要素のサポートが必要な場合はTransitional DTDを使用できます。 - HTML 4.01:22暫定ドキュメントタイプ定義

     

著者は、この仕様で定義されている他のDTDではなく、厳密なDTDに準拠するドキュメントを作成することをお勧めします。 - HTML 4.01:4適合性:要件と推奨事項

そして、これに関する多くのブログ投稿があります。 これ以上の移行DOCTYPEはありません(2006年から、一部、明らかに、これにはまだ問題があります:)。

この投稿は、ブラウザーが選択内容を気にしないことを指摘することから始まり、正しいDTDを選択する方法についての暴言に発展しました、興味深い...しかし、あなたが使うつもりならDTDを選択するための時間と労力(正しいHTML 4.01標準の観点から)を選択することもできます。

または、これはすべて無視できます

W3CのさまざまなDTDの公式説明は次のとおりです。

http://www.w3.org/QA/2002/04/valid-dtd-list .html

次の利点もあります。

http://www.freedivs.com/tutorials/Choosing%20a%20DOCTYPE/

Doctypeについては多くの誤った情報があります。混乱は、Doctypeが元々1つの目的(DTD、つまり使用されるHTMLバージョンを識別するため)を目的としていたが、実際のブラウザはまったく無関係な目的で使用されているという事実に起因します。

Doctype宣言は、今日のブラウザーの 1つのこと、つまりCSSの quirks レンダリングモードと standards レンダリングモードを切り替えるためにのみ使用されます。基本的には、HTMLのものではなくCSSのものです。

Quirksモードレンダリングは、古いブラウザーのいくつかの古いレンダリングバグと下位互換性があり、ほとんど修正しないレガシーコンテンツに役立ちます。新しいコンテンツは、ブラウザ間でより正確かつ一貫してレンダリングされるため、常に標準モードを使用する必要があります。 (標準モードを使用する場合、ブラウザー間のレンダリングの違いはまだありますが、互換モードではさらに悪化します。)

HTML docytypeを選択してもXHTML docytypeを選択しても違いはありません。また、strictまたはtransition doctypeを選択しても違いはありません。レンダリングモードは基本的に次のように選択されます。

  • ドキュメントにdoctypeがない場合、 quirks モードが選択されます。
  • ドキュメントに unrecognized doctypeがある場合、 standards モードが選択されます。これは、&lt;!DOCTYPE Chris&gt; のようなランダムなdoctypeを記述でき、完全に機能することを意味します。
  • 正しいURL(タグの2番目の文字列)なしで W3C公式doctypesは quirks モードを選択します。他のすべてのDoctypeは標準モードを選択します。 (編集:もちろんそれはそれよりも複雑であり、認識されたdoctypesがquirksモードをトリガーするブラウザ間でさえ異なります。Se hsivonensの概要、別の回答からリンク。)

歴史的にDoctypeは、使用されたHTMLのバージョンとサブセットを宣言することを目的としていました。 HTML4はいくつかのバージョンを定義しています。 「厳格」で許可されていない(FONTなどの)要素と属性の数を許可します。ブラウザは理論的に「厳格」を処理できます。 「一時的な」ドキュメントとは異なるドキュメント。ただし、実際にはこれを行うブラウザはありません

編集:scunliffeは、IE8には「IE8標準」というもう1つのレンダリングモードがあることを指摘しています。モード。ただし、このモードはDoctypeではなくメタタグによってトリガーされます。

基本的に、DoctypeはIEのクレイジーさを決定します。

XHTMLに設定しない場合、または&quot; strict&quot; IEに関しては、傷ついた世界に住んでいるでしょう(たとえ設定しても、IEを嫌っていますが、それはずっと良くなります)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top