| 
					
				 | 
			
			
				| 
					 
						!DOCTYPE文(ドキュメントタイプ宣言)による「標準準拠モード」と「後方互換モード」 
				 | 
			
			
				
					
						
							 
						 
						
							
								
									
										
											!DOCTYPE文(ドキュメントタイプ宣言)による「標準準拠モード」と「後方互換モード」HTML(XTML)の先頭部分の記述に <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">などがあります。 これは、そのHTML(XTML)のドキュメントのタイプを宣言しています。 ブラウザには「標準モード」と「後方互換モード」の2種類の描画モードがあり、ドキュメントタイプ宣言により、モードがスイッチされます。
											 
												- 「標準準拠モード」(Standards mode):もっとも新しい3WCの仕様に準拠し、正しく解釈して表示するモードです。仕様に外れた記述は無視されます。
 
													 
												- 「後方互換モード」(Quirks mode):仕様の基準が確定する前の古いブラウザにおいては、ブラウザ毎に解釈がバラバラだったため、あいまいな記述のwebページも容認されてきました。そんなwebページが数多く存在する中、いきなり厳格に解釈するブラウザだけになってしまうと、それらのwebページを切り捨てることになってしまいます。そこで、救済策として、新しいブラウザでも古いブラウザの時代のwebページを表示できるよう下位互換性を持たせたものが、「後方互換モード」です。
 
													 
											 
											「 標準準拠モード」にするドキュメントタイプ宣言
												
												 
													■ HTML 4.01 Strict 
													<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 厳密な標準準拠モード。推奨されないタグや、cssで指定すべきとされるタグは使えません。 
													 
													■ HTML 4.01 Transitional 
													<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> ゆるい標準準拠モード。推奨されないタグや、cssで指定すべきとされるタグも使えます。 
													 
													■ XHTML 1.0 もしくは XHTML 1.1 
													<?xml version="1.0" encoding="utf-8"?> 
													<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
													 
													<?xml version="1.0" encoding="utf-8"?> 
													<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
													 などと書きます。"!DOCTYPE"の前は、XML宣言です。文字エンコード指定は、それぞれのものになります。 "utf-8"の場合のみ、省略できるようですが、ブラウザによっては認識しないことがあります。特に省略すべき用件がある場合を除いて記述しておいた方が無難です。 
												 
											 
											
												
												「 後方互換モード」にする(意図せずなってしまう)ドキュメントタイプ宣言
												
												 
													■ HTML 4.01 Transitionalのシステム識別子(後のURL部分)を省く。 
													<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ※HTML 4.01 Strictのシステム識別子を省くと、Mac版IEのみ後方互換モードになります。
													
													 ■ 標準準拠モードとは違うものを記述した場合。
													 
														- ドキュメントタイプ宣言そのものがない。
 
														- 標準準拠モードを書く際、上のシステム識別子以外を省く(XML宣言部分を除いて、一部、もしくは全体)。
 
														- 標準準拠モードを書く際、スペルミスする。
 
														- HTMLのバージョンを古いものにする。
 
													 
												 
												
													※Windows IE6には、"!DOCTYPE"の前に空白以外の文字を書くと、ドキュメントタイプ宣言全体を無視するバグがあります。 xtmlのドキュメントタイプ宣言を正しく記述した場合、XML宣言が前にくるので、Windows IE6では、ドキュメントタイプ宣言を無視、結果後方互換モードになってしまいます。 この現象は、Windows IE6のみに起こります。Windows IE7では、修正されています。 これを解決するためには、下のように、XML宣言を省くしかありません。 
													<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
													 
												 
											 
										 
									 | 
								 
							 
						 
					 
				 |