2012-02-03 17 views
3

以前はdoctype宣言がなかったWebページがあります。doctypeが変更されると、Webページが別々にレンダリングされます

今、最初に<!doctype html>を追加しました。残念なことに、レンダリングが異なるようになりました。

ページを縦書きするdivがあります。今度は、ページの上半分だけを塗りつぶします(下半分は空です)。ここで

はdiv要素のCSSです:

#thediv { 
    float: left; 
    width: 48%; 
    height: 95%; 
    margin: 2px 2px; 
} 

私の質問:

  • は、どのように私はdiv要素が垂直方向に再びページ全体を埋めるために得るのですか?(重要)
  • <!doctype html>を追加すると、ブラウザがHTML5としてレンダリングしようとしますか?
  • doctypeを変更すると、この違いが生じるのはなぜですか?(重要度の低い)

答えて

9

あなたが<html><body>タグ(と同様に100%に#thedivが含まれている任意の他のタグの高さを設定する必要があります:

html, body { 
    height: 100%; 
} 

doctypeは、ページをquirksモードではなく標準モードでレンダリングさせます。the blog of the same namedoctype pageのquirksモードについて読むことをお勧めします。

問題の簡単な要約は次のとおりです。今日のブラウザのなかには、バージョン4よりも上のブラウザがない場合、ブラウザごとにの異なると区別されます。ブラウザの製造元がすべて同じ仕様を守ることに同意した場合、は古いページが新しいブラウザで正しくレンダリングされるようにWebページを構築する古い方法(クォークモード)を引き続きサポートすることに決めました。このquirksモードは、ほとんどのブラウザに組み込まれています。これらのモードは、それらの面倒な日に構築されたようなページを検出したときにアクティブにします。各ブラウザの検出方法と解決方法は異なります。here's an example of IE 8's

+0

+1同様の回答を書こうとしていた。あなたはこの提案について[the fiddle](http://jsfiddle.net/2FDZh/)をチェックすることができます: 'html、body'の高さをコメントアウトして完全な効果を見ることができます。 PS。これでもまだうまくいかない場合は、高さが必要な#thedivとbodyの間におそらく他のラッパーがあります。 – Jeroen

0

はい、<!doctype html>はHTML5

http://www.w3schools.com/html5/tag_doctype.asp

ためのDOCTYPEですDOCTYPEは、ページをレンダリングする方法をブラウザに指示し、各DOCTYPEは異なるレンダリングが発生します。

このDOCTYPEをお試しください:

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

ありがとうございますが、私は本当にそれよりも具体的なものを探しています。 –

+0

doctypeは、ページのレンダリング方法に大きな変化をもたらします。私は答えにいくつかの変更を加えました。 –

5

DOCTYPEがなければ、あなたはQuirks Modeにブラウザを強制的:古い ルールのQuirksモード、標準のためのstrictモード:つまり

は、すべてのブラウザには2つのモードが必要。IE Macは の最初のブラウザで、IE Windows 6、Mozilla、Safari、Opera の2つのモードを実装しています。 IE 5 Windows、およびNetscape 4などの古いブラウザは、quirksモードで永続的にロックされます。

使用するモードを選択するにはトリガーが必要で、このトリガーは 'doctype switching'で でした。標準によると、任意の(X)HTML 文書は、その文書が使用している(X)HTMLのフレーバーであることを世界中に伝えるdoctypeを持つ必要があります。

に関する注意点モードは基本的にあなたが特定のDOCTYPEに従うこと、それらを伝えるために忘れたときにブラウザが入る的な社会のモードです。ほとんどの場合、IEは、それらすべての最悪であり、あなたはIEとDOCTYPEを定義するのを忘れたときに、すべての地獄の休憩が緩ん:ときでIEが多くのDOM機能が実装されていないよう

  • jQueryのDOMの相互作用は、gridingly遅い取得Quirksモード。
  • これは決して正しく見えません。
  • それから離れてください。あなたはそのように幸せになるでしょう。
0

常に、常にALWAYSはフロントアップ<!DOCTYPE __>を使用しています。

次に、ウェブページをデザインします。

それ以外の場合は、動作しないと思われます。

+2

質問に対する答えは実際にはありませんが、回答はありません; – Jeroen

+0

あなたは少し誇張しています。ブラウザには違いがありますが、ほとんどのブラウザは標準的であり、かなりよく文書化されています。厳密なモードをトリガーするよりもHTMLをエラーなく処理することが効果的です。 –

+0

厳密モードは、Quirksモードよりも信頼性が高く、一貫性があります。 –