• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DOCTYPE)

DOCTYPEについての理解と具体的な問題

このQ&Aのポイント
  • DOCTYPEについて理解が及ばず、具体的な問題に困っています。
  • 現在古めのソフトを使用して制作しており、IE6での表示に関する問題が発生しています。
  • DOCTYPEを使用してIE6での表示を調整できるのか、具体的な記述方法について知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Adams2001
  • ベストアンサー率67% (70/103)
回答No.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/Doctype-Switch_situation.html

reis
質問者

お礼

回答ありがとうございます。 >ちょっと間違っています スミマセン、言葉が足りませんでした。「それ」(宣言)は前提として、HTMLのヴァージョンの後に指定を入れることでブラウザの表示に有効な小技(っていうか苦し紛れ)になりますよね、ってことで。 >IBMホームページビルダーでしょうか おっしゃるとおりでございます。ホームページビルダー2000です。最初はコレに頼ってましたが、最近はファイルの整理に便利だし、量の多いタグを自分でぺちぺち打たなくて済むし、どうせ基本のタグしか使わないし……という感覚で古いまま使っておりました。 4.0ってこいつの間違いだったのですね~~!! どおりで。そんなの無いな~と思ってたんです。 教えていただいたURL2件目、実はそこをおもに参考にしました。たぶん、そうなんだろうな、と思いつつ、具体例がわかりにくかったので、ここで質問したんです。 これで自信がつきました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • onimotsu
  • ベストアンサー率36% (279/758)
回答No.1

>DOCTYPEの記述によって、閲覧側のブラウザ(「IE6」)の解釈を指定出来る……というのは間違っていませんよね? DOCTYPEはHTMLのバージョンを指定しているに過ぎないのでは? 下記URLは既にご覧になりましたか? 一応、ご確認ください。

参考URL:
http://tohoho.wakusei.ne.jp/html/doctype.htm
reis
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • DOCTYPEスイッチの後方互換モードや標準モードに関して

    下記のWebページでは、DOCTYPEスイッチの一覧が表示されています: http://nagomin0123.web.fc2.com/doctype/doctype.html このWebページの「主なDOCTYPEスイッチ一覧表」を見ると、「HTML4.01 Transitional」のシステム識別子“あり”と「HTML4.01 Strict」のシステム識別子“あり”及び“なし”は、IE6=Standards、IE7=Standards、IE8=IE8 及び(Firefox,Opera,Safari)=StandardsというふうにE6、IE7、IE8 及び(Firefox,Opera,Safari)におけるモードの指定が全て同じになっています。 しかし、同Webページの「主なDOCTYPEスイッチ一覧表(Almost Standardsを追加)」においては、 「HTML4.01 Transitional」のシステム識別子“あり”の場合、IE6=Almost Standards、IE7= Almost Standards、IE8=IE8 Almost Standards 及び(Firefox,Opera,Safari)= Almost Standards 「HTML4.01 Strict」のシステム識別子“あり”及び“なし”は、IE6= Almost Standards、IE7= Almost Standards、IE8=IE8 Standards及び(Firefox,Opera,Safari)=Standards というふうになっています。 <質問1> そのため、厳密に言うと「HTML4.01 Transitional」のシステム識別子“あり”と「HTML4.01 Strict」のシステム識別子“あり”及び“なし”では、E6、IE7、IE8 及び(Firefox,Opera,Safari)におけるブラウザー上の表示は、“画像の下の余白の表示のみが異なり”(このWebページに説明されているように)、それ以外はこれらのブラウザー上の“表示は同じ”になるという理解でよいのでしょうか? <質問2> 上記質問1の私の理解でよければ(正しければ)、現時点で推薦される宣言は、E6、IE7、IE8 及び(Firefox,Opera,Safari)において最も共通性の高い(E6、IE7、IE8 及び(Firefox,Opera,Safari)の全てにおいてAlmost Standardsモード)「HTML4.01 Transitional」のシステム識別子“あり”ということに、一般的には、なると思いますが、この理解も正しいでしょうか? <質問3> このWebページの中ほどを見ると、各宣言の具体的な記述方法が記載されています。その中の1.に「HTML4.01 Transitional」のシステム識別子“なし”及び“あり”の記述方法が記載されていますが、システム識別子“なし”が1行で記載されているのに対し「HTML4.01 Transitional」のシステム識別子“あり”は2行(…//EN"の直後に改行)で記述されています。 このWebページでは、Webページの横幅の関係で「HTML4.01 Transitional」のシステム識別子“あり”は2行で記述されたのかと思い他の「HTML4.01 Transitional」のシステム識別子“あり”で記述されたサイトのソース等(横幅の制限が無い)も見てみましたが、やはり「HTML4.01 Transitional」のシステム識別子“あり”は2行で記述されており、改行箇所(…//EN"の直後に改行)も同じです。 これは以前から疑問に思っていたのですが、サイトのソースコード記述時のように横幅の制限が無い場合でも、「HTML4.01 Transitional」のシステム識別子“あり”は、通例として、2行(…//EN"の直後に改行)で記術するものなのでしょうか(このWebページで記述されているように)?

    • ベストアンサー
    • HTML
  • IE7とDOCTYPE宣言について

    たくさんのサイトで「IE7で表示くずれのあるページはDOCTYPE宣言を修正すればIE6での表示結果にちかづく」とありました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> これはシステム識別子をのぞいた状態であり、IE6・IE7ともにQuirksモードという互換モードで認識するとありました。 ここでわからなくなるのですが、IE6でもIE7でも同じ認識の仕方をしているにもかかわらず、なぜIE7とIE6で表示のされ方が違うのでしょうか? 結局、IE6用のバグ逆利用css指定がIE7でバグがとられていたためという結論でいいのでしょうか? 現在、自社サイトのIE7用の表示チェックを行っており、DOCTYPE宣言を変更(識別子を加える)する必要があるのかないのかが、サイトを読んでもなかなか理解しづらいため質問させていただきました。 よろしくお願い致します。

    • ベストアンサー
    • HTML
  • DOCTYPE宣言のURLって何?

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> このDOCTYPE宣言ですが "http://www.w3.org/TR/html4/loose.dtd" が入っているのと入ってないのとで、若干表示に違いが出てくることがあります。今やろうとしていること(長くなるので省略)は、このURLを入れないほうが思った結果になるのですが、なんとなく漠然と「より厳密にHTMLの仕様を定義づける記述」だと思ってたので安易に削除してしまって良いものか躊躇しています。 べつに省略してもたいして問題ないとは思うんですが、そもそもこのURLって何なのですか?細かく取り決めみたいなのが書いてありますが、これを宣言に加えるか加えないかで表示に違いが出るということは、前半の !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" のさらに細密な定義ということなのでしょうか。そうだとしたら別の定義のURLもあるのですか? 詳しいことをご存知の方がおられましたら教えてください。 ※環境はXPpro SP2、エディターはHTMLproject2、ブラウザはIE6、FF1.5です。まあ見られる方の環境は様々なのでウチのを言っても詮無いことですが一応。

    • ベストアンサー
    • HTML
  • DOCTYPEの宣言について

    こんにちは。 いつもお世話になっています。 今、自分の趣味のサイトの再構成に取りかかっています。 今までのテーブル多用ではなく、外部スタイルシートを使って主にdivを使った構成に切り替えたいと思っています。 あちこちのサイトのスタイルシート講座を覗いたり、市販の本を買って読んでみたり自分なりに勉強しているつもりです。 そこで一つ疑問にが出てきたのですが。 最近買った本の中で、ブラウザの表示の違いを避けるためにも、DOCTYPEの宣言を記述した方がよいとありました。 今のところはTransitional DTDが一番多く採用されているようですが、その中でも標準モードと互換モードがあるようです。 私の使っているホームページビルダー12ではデフォルトで <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > の互換モードの記述が挿入されます。 標準モードの記述は <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> のようですが、標準モードと互換モードの違いが今ひとつよくわかりません。 本にはブラウザによって ●text-alianプロパティによるブロック要素のセンタリングに違いが出る ●margin:atuoの動作に違いが出る ●ボックスサイズの算出に違いが出る ●フォントの標準サイズに違いが出る とありましたが、ブラウザによっての表示の違いを少なくするためには、どちらのモードが望ましいのでしょうか? それとも趣味のサイト程度なら、かえってDOCTYPEの記述がない方がブラウザによっての表示の違いが少ないのでしょうか? また標準モードにすると、IEやOperaで表示されるはずのスクロールバーの色や形等のスタイルが反映されなくなってしまうようですが、これは他のブラウザが対応していないせいなのでしょうか? 個人のサイトならそこまで気にすることないことかもしれませんが、後学のためにも知っておきたいと思います。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • DOCTYPEを無視して強制的チェックをやめたい

    フリーソフトAnother HTML-lint gatewayを使用して記述誤りのチェックしていますが ルビーを使用しているので Microsoft Internet Explorer 5.5 でチェックしていますが全て DOCTYPE でチェックしたいと思いIE9だかですが 下記のように表示されて困っていますが をわかりでしたら教えて下さい IE7 IE8では、正常に表示しています IE6 では、おかしく表示されますが 縦書きは、正常に表示しています http://ryuso.info/h/h002e5mt.htm 対象ページを参照すると                  と 割レバ 永四百五拾六文六分貮厘壱毛与成る http://ryuso.info/h/dok_2.htm フレーム分割で参照すると                 と 割レバ 永四百五拾六文六分貮厘壱毛与成る http://ryuso.info/h/dokue_3y.htm ソース <div class="margin-left:19em;margin-bottom:-0.5em;">と</div> <div style="margin-left:2em;">割レバ 永四百五拾六文六分貮厘壱毛与成る</div>

    • 締切済み
    • CSS
  • jQueryの属性フィルタにつきまして

    以下の部分のjQueryの属性フィルタで指定する方法がわかりません。 <div style="text-align: left; margin-left: 0px;"> ほげほげ </div> jQuery('div[style="text-align: left; margin-left: 0px;"]').css("display","none"); ってのは、どこかおかしいと思うのですが、 [attribute=value]というルールに沿うとこういった指定になります。 そもそも、style属性の場合は、属性フィルタは使えないのでしょうか。 あるいは、CSSのvalueまで判別させる場合は、この記述は無理なのでしょうか。 name="hoge" とかなら容易に指定できて効くのですが。。。 素人質問で恐縮ですが、 ご教授いただけると助かります。 参考になるページでも構いません。 どうぞよろしくお願いします。

  • 全体のレイアウト:中央揃えについて

    画面の全体のレイアウトを中央にそろえたいと思い、「div.Zen { margin-left: auto; margin-right: auto }」を指定してもIEでは中央揃えになっていませんでした。 ところが、「body { text-align: center }」を指定したところ、中央揃えになりました。 ブラウザで比較してみると、 ■IE7  body { text-align: center }で、中央揃え  div.Zen { margin-left: auto; margin-right: auto }では中央にならない ■Opera9.25  body { text-align: center }では、中央にならない  div.Zen { margin-left: auto; margin-right: auto }で、中央揃え ■NetScape7.1  body { text-align: center }では、中央にならない  div.Zen { margin-left: auto; margin-right: auto }で、中央揃え ■Firefox2  body { text-align: center }では、中央にならない  div.Zen { margin-left: auto; margin-right: auto }で、中央揃え と、ブラウザによって中央になる指定が違うのですが何故このようなことが起こるのでしょうか? 回答よろしくお願いします。 <?xml version="1.0" encoding="Shift-JIS" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <style type="text/css"> <!-- div.Zen { width: 900px; margin-left: auto; margin-right: auto } body { text-align: center } #Ky { float: left } div.Ku1_0 { width: 900px; height: 150px; background-color: aqua } --> </style> <title></title> </head> <body> <div class="Zen"> <div class="Ku1_0" id="Ky"></div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • IE8ではtext-align: center;でdivタグが中央にならない。改善策は?

    IE8ではtext-align: center;でdivタグ又はbodyが中央にならなくなってしまったので、修正方法を探していたところ、以下の質問・回答履歴を見つけました。 http://oshiete1.watch.impress.co.jp/qa4989799.html 上記の回答履歴では最終的にNo.6さんの以下の回答で問題が解決されています。 CSSでは以下のように記述: div.center { width: 80%; margin-right: auto; margin-left: auto; } HTMLではセンタリングさせたいdiv要素を以下のように記述: <div class="center">文章等<div> <質問1> ここで私の質問ですが、なぜ上記の回答では<div class="center">文章等<div> を中央に表示するためにCSSにwidth: 80%;が必要なのでしょうか(width: 80%はdivタグのセンタリングには特に必要ないのですか?なぜ、width: 80%が記述されているのか分かりません。)?この80%という値はどこから導き出されたのでしょうか(なぜ、例えば60%、70%等ではだめなのですか?)? また、bodyタグをセンタリングしたい場合は、どうですか?CSSにwidth: 80%;が必要なのでしょうか? <質問2> 「margin-right: auto;とmargin-left: auto;」以外にもmargin:0 autoという方法が他のサイトで紹介されていましたが、「margin-right: auto;とmargin-left: auto;」を使用した場合とmargin:0 autoを使用した場合の表示結果は全く同じなのでしょうか?margin:0 autoの場合、上下のマージンも0(無し)となるので、その点で上下のマージンを指定していない「margin-right: auto;とmargin-left: auto;」と異なるように思いますが?「margin-right: auto;とmargin-left: auto;」又はmargin:0 autoを使用する場合、他方を使用することに比べてメリット及びデメリットはあるのでしょうか? また、もしも、「margin-right: auto;とmargin-left: auto;」の代わりにmargin:0 autoを使用する場合、記述は以下で正しいのでしょうか? <divタグをセンタリングしたい場合> CSSでは以下のように記述: div.center { width: 80%; margin:0 auto } 上記の記述で div.center { width: 80%; margin-right: auto; margin-left: auto; } と全く同じ表示になるのでしょうか? <bodyタグをセンタリングしたい場合> CSSでは以下のように記述: body { width: 80%; margin:0 auto } 上記の記述で body { width: 80%; margin-right: auto; margin-left: auto; } と全く同じ表示になるのでしょうか? <質問3> IE6又はそれ以前のIEは、「margin-right: auto;とmargin-left: auto;」又はmargin:0 autoではDivタグをセンタリングできず、text-align: center;を使用する必要あったような記憶があります。IE7/8に加えてIE6又はそれ以前のIEにおいても<div class="center">文章等<div>をセンタリングしたい場合、どのような記述となりますか? 以下のように「margin-right: auto;とmargin-left: auto;」又はmargin:0 autoをtext-align: center;と同じ場所に記述する方法はうまくいかないようですが。私の記述方法が悪いだけですか? { text-align: center; margin-right: auto; margin-left: auto; } 又は { text-align: center; margin:0 auto; } 関連サイト等あれば、そちらも教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • IE8にするとサイズ指定の別ウィンドウが表示できません

    よろしくお願いします! 今、私のホームページで以下のタグの記述とアイコンを使い、指定した大きさで別のウィンドウを開けるようにしているのですが、ブラウザをIE8にした途端に(実際にはWindows7 RC版上でのIE8で)、今までのように別の指定サイズのウィンドウ表示が出来なくなりました。 <a href="△△△.html" onclick="window.open(this.href,  '_blank', 'width=600,height=400,scrollbars=yes,resizable=no,toolbar=no, directories=no,location=no,menubar=no,status=no,left=10,top=10'); return false"><img src="○○○.jpg" border="0" align="center"></a> ※ 今回のタグの記述例は、この質問ページの体裁に影響してしまうので、途中で改行を入れています。本来はつなげて記述しています。 IE7や他のブラウザでは、問題なく別の指定サイズのウィンドウで表示が出来ていました。 なにぶん見よう見真似で取り入れたタグの記述方法だったので、IE8のどこを変更すれば別ウィンドウで表示できるでしょうか? またはIE8になると、以上のタグの機能は使えないのでしょうか? ぜひご教授お願いします。

  • 罫線タグ

    <hr>タグを使って文字のすぐ下に罫線を引き<div align="left">で左揃えにしてるのですが、 現在使用してるブラウザはIE6.0ですが、その他のブラウザで見ると オペラもfirefox、IE7・0などは左指定にも関わらず罫線が真ん中に来てしまいます。 他のブラウザで見てもちゃんと指定された場所にくる罫線タグはほかに何があるのでしょうか?

    • ベストアンサー
    • HTML