正しいと思われることはすべて実行しましたが、最新のブラウザではページが正しく動作しません。これは、W3C 標準のドキュメント オブジェクト モデル (DOM) を使用してページ上の動的要素を操作したためです。そして、ブラウザがこれらの標準を実装しようとすると、サイトは失敗します。これは、間違ったドキュメント タイプ (DOCTYPE) が原因である可能性が高くなります。この記事では、DOCTYPE がどのように機能するかを説明し、これらのドキュメント タイプの実際の実際の使用法を説明します。
なぜ DOCTYPE なのか?
HTML および XHTML 標準によれば、DOCTYPE (「ドキュメント タイプ宣言」の略) は、使用している (x)HTML のバージョンをブラウザに伝えるために使用され、すべてのページの先頭に表示される必要があります。 DOCTYPE は Web ページの重要なコンポーネントです。DOCTYPE がなければ、CSS は無効になります。
前述の ALA の記事で述べたように (その他の興味深い点も)、DOCTYPE は Mozilla、IE5/Mac、IE6 や IE7 などの他のブラウザーにも適合させる必要があります。
新しい DOCTYPE には URI 全体 (sconf 注: Universal Resource Identifier、Universal Resource Identifier) (完全な URL) が含まれており、これはブラウザーにページを標準と互換性のあるモデルに解析 (レンダリング) するよう指示します。 (X)HTML、CSS、DOM を期待どおりに処理します。
不完全または古い DOCTYPE を使用するか、DOCTYPE をまったく使用しないと、ブラウザーはそれを「Quirks」モデルに変換します。ブラウザーは、90 年代以降の古くて壊れたコードを作成しているとみなします。
この設定を使用すると、ブラウザーは古い標準を使用してページを解析し、CSS を IE4 標準に解析しようとします。そして、特別な DOM で所有者に応答します (IE は IE の DOM に応答しますが、Mozilla と Netscape 6 は、それだと思われるモデルに応答します)。
確かに、これはあなたが望んでいることではありません。しかし、それは頻繁に得られるものです。したがって、この記事では、これらの誤ったまたは不完全な DOCTYPE を修正したいと考えています。
(注: Opera ブラウザはこれらのルールをサポートしていません。Opera ブラウザは常に Web ページを標準に適合したものに解析しようとします。一方、Opera は W3C の DOM に対する強力なサポートを提供しません。しかし、それらも適切に実行できます。) Ed: これ以降この記事が最初に公開されたとき、Opera は Opera 7 に DOM 準拠の機能を追加しました。
DOCTYPE はどこへ行ったのでしょうか? (すべての DOCTYPE はどこへ行ったのでしょうか?)
ドキュメント タイプはブラウザの WEB 標準に不可欠な重要な部分であり、W3C が WEB 標準の作成を主導していますが、W3C サイトが適切なドキュメント タイプを提供できることも期待しており、この情報をより迅速かつ簡単に見つけたいと思うこともあります。ただし、これを書いている時点ではまだできません。 {編集者: 現在、W3C は Web サイトに一連の標準 DOCTYPE をリストしています。これらは、「私の Web サイトは標準です。あなたの Web サイトも?」など、W3C ガイドラインで確認できます。}
W3.org は、List Apart、WebReference、または Webmonkey ではありません。元々は、WEB デザイナー、開発者、および市民社会組織が最新テクノロジーの理解と使用を促進することを目的としたものではありませんでした。これは彼の仕事ではありません。
W3C は一連のガイドラインを発行していますが、ほとんどの Web デザイナーはそのガイドラインを知りません。 #
専用のリストを見なくても、W3.org で DOCTYPE を一日中検索できます。また、DOCTYPE (通常は特定の提案または草案に関連するもの) をダウンロードしても、サイトでは正しく機能しません。
W3C サイト全体には、W3C 独自の Web サイトを指す DOCTYPE があり、その URI が欠落しています (sconf 注: 完全な URI ではありません)。これらが W3C から独自の Web ページに移動されると、これらの URL は存在しないドキュメントになります。
たとえば、多くのサイトの DOCTYPE は W3.org から直接コピーされています。
引用した内容は以下の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
この DOCTYPE の最後の部分 (「DTD/xhtml1-strict.dtd」) を見ると、これが W3C サイトへの相対リンクであることがわかります。これは W3C サイトにあり、あなたのものではありません。したがって、この URI はブラウザーには影響しません。 (sconf 注: W3.org にアクセスすると、これは相対リンクであるためのみ機能します)。
この DOCTYPE は実際には次のように変更する必要があります。
引用した内容は以下の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
背後の DOCTYPE には完全な URI が含まれていることに注意してください。これにより、ネットワーク上の有効なリソースが表示され、ブラウザがそれを見つけて文書を標準準拠の形式に解析できるようになります。
DOCTYPEの使用方法(機能するDOCTYPE)
では、DOCTYPE をどのように使用するのでしょうか?質問してよかったです。必要なのは以下の完全な DOCTYPE だけです。
HTML 4.01 厳密、暫定、フレーム
引用した内容は以下の通りです。 <!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 Transitional//EN" 「 http://www.w3.org/TR/html4/loose.dtd 」 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 フレームセット//EN" 「 http://www.w3.org/TR/html4/frameset.dtd 」 |
XHTML 1.0 厳密、暫定、フレームワーク
引用した内容は以下の通りです。 <!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 Transitional//EN" 「 http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd 」 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 フレームセット//EN" 「 http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd 」 |
XHTML1.1 DTD
引用した内容は以下の通りです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |