ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

必要に迫られてDOCTYPEについて検索していたのですが、いまひとつ実例と結びつかなくて理解が及びません。

DOCTYPEの記述によって、閲覧側のブラウザ(「IE6」)の解釈を指定出来る……というのは間違っていませんよね?

で、具体的な問題なのですが。

現在「W3C//DTD HTML 4.0」を基準とした古めのソフトを中心に手書きを加えて制作しています。
「IE5.5」までの環境では、たとえば「align」を指定しないと勝手に「left」に解釈してくれていましたが、そのままでは、「IE6」の環境では「center」になってしまいます。
これが「IE6」が「Standards」で表示しているために起きる現象で、DOCTYPEで「IE6」に「Quirks」で表示させるよう記述すれば、「IE6」に対しても今までどおり「align」が「left」の状態で見てもらえるということですか?(というか、今さっきまで見ていたサイトでは、そう解釈出来る説明だったのですが)
この目的に添ったDOCTYPEの記述はどうなりますか?

「Standards」が正確なのだと言われれば、自分が「IE6」にアップして正確な環境でモニターしながら制作しなおせばよいのでしょうが、個人的な事情で今は「IE6」にアップしたくはありません。ファイル数も多いため、「IE5.5」でモニターしながらタグを見直していくのは時間もかかるので、出来るならDOCTYPEでなんとかしたいと思います。

A 回答 (2件)

>DOCTYPEの記述によって、閲覧側のブラウザ(「IE6」)の解釈を指定出来る……というのは間違っていませんよね?



ちょっと間違っています(^^;DOCTYPE宣言(文書型宣言)は「私の書く文書はHTMLのバージョンxですよ」という宣言です(HTMLだけじゃないですけど)。当然、実際に書いたHTMLと一致していなければなりません。そうじゃないと、HTMLを解釈するブラウザなどが混乱してしまいます。

#原則は自分のHTMLの文書型に合わせて宣言する。

で、IE5.5とかはHTML4.01の仕様を先取り実装したりした関係で、細かい部分で間違って実装してしまいました。その結果、正しく書かれたHTML4.01は(できるだけ)正しく表示するためにStandardsモード、IEにあわせてHTMLの方で対処した(結果、Standardsモードでは意図通りに表示されなくなった)多くのページを救うためにQuirksモード、とふたつのモードが必要になってしまいました。

で、これの切換をどうするか、ということで、正しいHTML4.01を書ける人は文書型をきちんと書いてるだろうし切り換えの仕様にあわせて修正できるだろう、そうじゃない人は知らないうちにTransitionalなHTMLを書くだろうし文書型宣言なんかしてないことも多いし、と思ったかどうかは知りませんが、そういう感じでDOCTYPEスイッチと呼ばれる、文書型宣言で表示モードを切り換える、という仕様にしたようです。

>この目的に添ったDOCTYPEの記述はどうなりますか?

IE5.5と同等に表示にしたいのであれば、表示モードをQuirksにすればいいので、通常のページであれば

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

と書くか、あるいは文書型宣言を消してください(文書型宣言がないとQuirksになる)。フレーム割を行っているページは

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

>現在「W3C//DTD HTML 4.0」を基準とした古めのソフトを中心に手書きを加えて制作しています。

IBMホームページビルダーでしょうか?こやつの古いバージョンはこともあろうにHTML4.0と存在しない(というか、仕様として認められることなく散った)文書型を宣言する困ったちゃん、だったはず。しかもStandardsモードで表示される形で。

面倒ですが、上記の文書型宣言に修正するか、自分のHTMLの文書型に自信がなければ消しちゃう、といいでしょう。

#4.0でもTransitionalと指定すればQuirksになる、という説もあるのですが、そもそも4.0なんて宣言は間違いですので、追求する価値もないでしょう。

文書型宣言とは
http://www.kanzaki.com/docs/html/doctype.html

DOCTYPEスイッチの解説
http://www.remus.dti.ne.jp/~a-satomi/bunsyorou/D …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>ちょっと間違っています

スミマセン、言葉が足りませんでした。「それ」(宣言)は前提として、HTMLのヴァージョンの後に指定を入れることでブラウザの表示に有効な小技(っていうか苦し紛れ)になりますよね、ってことで。

>IBMホームページビルダーでしょうか

おっしゃるとおりでございます。ホームページビルダー2000です。最初はコレに頼ってましたが、最近はファイルの整理に便利だし、量の多いタグを自分でぺちぺち打たなくて済むし、どうせ基本のタグしか使わないし……という感覚で古いまま使っておりました。
4.0ってこいつの間違いだったのですね~~!! どおりで。そんなの無いな~と思ってたんです。

教えていただいたURL2件目、実はそこをおもに参考にしました。たぶん、そうなんだろうな、と思いつつ、具体例がわかりにくかったので、ここで質問したんです。
これで自信がつきました。ありがとうございます。

お礼日時:2002/10/23 15:24

>DOCTYPEの記述によって、閲覧側のブラウザ(「IE6」)の解釈を指定出来る……というのは間違っていませんよね?



DOCTYPEはHTMLのバージョンを指定しているに過ぎないのでは?
下記URLは既にご覧になりましたか?
一応、ご確認ください。

参考URL:http://tohoho.wakusei.ne.jp/html/doctype.htm
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

すみません、お二人目に回答下さったかたにも指摘されましたが、本来の意味はそうですね。
やりたいことというか、質問の意図が別のところにあったので、そちらを書いてしまいました。

お礼日時:2002/10/23 15:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!