• 締切済み

htmlの3つの文書型宣言

htmlを記述する際、1行目に宣言文を記述しないといけませんが。 Strict DTD (厳密型)  TransitionalDTD(移行型)  FramesetDTD(フレーム型) とはいったいなんですか? 普通はStrict DTD (厳密型)を使用するようですね。 しかし、勉強している内に、TransitionalDTD(移行型)とFramesetDTD(フレーム型)が出てきました。 FramesetDTD(フレーム型)は、1ページ内に、2枠以上のページを使うときに使用しました。 TransitionalDTD(移行型)は、index.htmlがあるとしたら、そのページ内に入れる2枠目からの、html文書の宣言文として使ったのですが、この考え方は正しいのでしょうか? テキストを使って独学でやっているのですが、3つの区別があまりわかりません。 どういう風に考えるとよいのでしょうか?

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.5

>ここまでご説明頂いて誠にありがとうございます。しかし、HTMLを学んで1ヶ月 >程度の私にはあまり理解できないです。すいません。  そうですか?  でも、ウェブはフリーウェイです。初心者もベテランもまったく平等に自由です。そこでは、「初心者マーク」をつける義務も「初心者を保護する」責任もありません。自由と言うものはそんなものです。それを厳しいと感じるか、すばらしいと感じるかは人それぞれでしょう。ただ、「初心者です」が言い訳にならない世界であることは間違いありません。  私がネットを始めた当時はこんな親切な掲示板などなくて安易に質問すると「man!」と返信が帰ってくるだけでした。--manとはmanualのこと、Windowsのコマンドプロンプトで「help」と入力すると操作方法が出てきます(UNIXだとman)ね。「あれに書かれている内容は聞くな」良い意味で解釈すると「自分で公開されている資料を読むようにしないと上達しないよ!」と言う意味。 >TransitionalDTD(移行型)は、index.htmlがあるとしたら、そのページ内に >入れる2枠目からの、html文書の宣言文として使ったのですが、この考え >方は正しいのでしょうか?  違います。 >3つの区別があまりわかりません。  結論はすでに書きましたが、初心者に限らず「原則strictだけ」と考えればよいです。strict以外は、後方互換でいずれ廃止されるか使えなくなる。 ★初心者は最初に出会う資料でその後無駄な時間をすごすか、効率的に学べるかが決まります。たとえば 14.1 スタイルシートの概説 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 ) に書かれている様々なテクニックに頼ることを覚えてしまうと上達はできませんし、それを捨てるために大変な苦労をすることになります。時間も無駄!!  あなたが「プログラムに頼らず」テキストエディタで始められたことはとてもすばらしいことです。頑張ってください。  ただ、「初心者」「高齢者」などの免罪符は書かなくて良いです。質問内容を読めばたちどころにわかります。これらの言葉は相手ではなく自分自身に対する言い訳になってしまいます。  No.2で最初に読まれるべき資料をあげておきました。  それと、つねにHTML 4.01 Specification (ja) ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/cover.html )を参照してみること。はじめはチンプンカンプンですが、少なくともどんな参考書よりも的確で正しい情報が、本よりもはるかに少ない文字数でまとめられています。一度全体を流し読みしておくこと。

全文を見る
すると、全ての回答が全文表示されます。
  • DrFell
  • ベストアンサー率55% (305/551)
回答No.4

2枠以上のページも、2ブロックに分けた1つのhtml文書で、cssで2枠以上にデザインすることが現在の主流になっています。フレームのように片方が完全固定で縦にもスクロールしない場合はJavaScript等も併用することが多いです。閲覧しにくいだけでなく、検索エンジンとも相性が悪い為、フレームタイプは敬遠する管理人が多くなりました。(閲覧しにくいとは、利用者が個々のページにブックマークやリンクを貼りにくい、個々のページから入ると行き止まりページになる等) 私も皆さんと同じで、これからつくるならStrict宣言で作られることをお勧めします。 両者の違いは過去のブラウザに合わせ解釈をわざと間違えて表示するTransitionalと仕様書に従うStrictです。フレームタイプ以外にも移行型は使用できます。お勧めはしません。 移行型は解釈の話になる場合、過去互換・後方互換とも呼ばれます。どう解釈がちがうのかをまとめたページを紹介します。宣言文によってこのブラウザは過去互換、こっちは標準で解釈などと入り乱れますので、ご注意ください。 ●標準準拠・後方互換モード各々の CSS 解釈の違いをまとめたドキュメントを共有 http://2xup.org/log/2007/07/27-2111

全文を見る
すると、全ての回答が全文表示されます。
  • Chaire
  • ベストアンサー率60% (79/130)
回答No.3

インターネットの設計原則を述べた RFC 1958 という文書に、次の一文があります。 | Be strict when sending and tolerant when receiving. | 送信時は厳密に、受信時は寛容に。 HTML 4.0(1) の strict.dtd と loose.dtd も、ある意味ではこれに対応します。これからページを作る人は厳密に作ることができますが、一方で、古い仕様で作られた古いページを保守しなければならない人もいます(特に、ブラウザはどんなに古いページだろうとサポートすべきです)。 古いページは古いまま「寛容に」残しつつ、必要であれば少しずつアップデートして厳密型に「移行」していく……という意味で、厳密型から外された古い要素・属性を、ある程度残してあるのが移行型です。まあ、一向に「移行」が進んでないサイトがほとんどですけどね。 --- フレーム型は移行型の特殊形で、フレーム定義ページでのみ使用されます。個々のフレーム内のページは移行型で書かれることがほとんどでしょう。なぜなら、厳密型にはフレームターゲットを指定する target 属性が含まれないからです。もちろん、フレームターゲットを使わなければ厳密型を使っても構いませんが。 HTML 4.0 ができた 1997/1999 年の段階では、フレームは次世代の仕組みに置き換わる予定でした。ですが、次世代フレームの計画は頓挫し、未だに古いフレームが残っているのが現状です。 No.1 でも書かれておりますが、HTML5 では文書型の区別がなくなり、「ページ作者が使って良い要素・属性」と「廃止されたがブラウザはサポートすべきもの」に分けられました。フレームは後者です。 --- そもそも論として、文書型宣言(<!DOCTYPE HTML ...>)は基本的に過去の遺物です。しかし、いろいろな政治的事情が絡んでしまい、「書かなくても良い」と言えなくなってしまいました。 個人的には <!DOCTYPE html> だけを書き、中身は HTML 4.0 なり XHTML 1.x なり好きなもので書けば良いと思います。少なくとも、厳密型ではなく移行型を宣言するくらいなら、<!DOCTYPE html> だけにしておいた方が無難です。DOCTYPE スイッチという変な仕組みがあって、これがまた面倒くさいのです(なので『普通は厳密型を使用する』という認識を持ち続けて下さい)。 まあ、過去の遺物とは言え、DTD をその場で解釈してタグや属性の補完をしてくれる HTML エディタもありますので、損ばかりではないでしょう。

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

補足 >テキストを使って独学でやっているのですが、3つの区別があまりわかりません。 >TransitionalDTD(移行型)とFramesetDTD(フレーム型)が出てきました。  あまり良いテキストではないようですね。肝心なところが最初に説明していない。たぶん、この様なデザインのページはこの様にマークアップするというスタンスではないでしょうか?  だとしたらゴミ箱直行ですね。  仕様書をきちんと読んでいない人が書いている。まあ、仕様書が読める人なら本を書くより「仕様書を読みなさい」とアドバイスするでしょう。仕様書を知らないか、読んでない、読んでも理解できないから本を書く。だから良い本がないのですが・・・ はじめてのWebドキュメントづくり ( http://www.asahi-net.or.jp/%7Esd5a-ucd/www/ )  ・・HTML4.01仕様書翻訳メンバーの代表的な内田さんがお子さんのために書かれた解説書 1と2の間辺りからはじめるホームページ講座 ( http://www6.plala.or.jp/go_west/ ) 1と2の間辺りからはじめるCSS講座 ( http://www6.plala.or.jp/go_west/ )  このあたりからはじめるのがお勧めです。

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

まず仕様書をいつも読む癖をつけましょう。 【引用】____________ここから どういう場合に厳密型DTD、移行型DTD、フレーム設定型DTDを用いるかについては、 HTMLバージョン情報の項を参照のこと。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[4.2 SGML (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.2 )]より →7.2 HTMLバージョン情報 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#version-info ) ★仕様書は、どんな回答よりもまず参考にすべきものです。 現在策定が進んでいるHTML5の仕様書を読むと、より厳しく書かれています。すなわち、 「著者が使えるもの」と「ブラウザがサポートしなければならないもの」に明確に分けられました。  HTML4.01では後方互換のため「推奨」と「非推奨」に分けていましたが、W3Cなどの意向に反して、「非推奨」が使われ続けていました。そのため、本来は使われなくなるはずの多くの要素や属性がいまだに使われ続けています。  その反省からHTML5では、このような区別になり、ブラウザがサポートしていても著者は使えなくなり、正統なHTML5としてValidatorをパスできなくなりました。その視点でHTML4.01の仕様書を読み直すと、「非推奨(TransitionalとFrame)」は『著者が使えないものだけどユーザーエージェントはサポートすべきもの』と言う意味です。それで、TransitionalやFrameの置かれている位置がお分かりでしょう。HTML4.01仕様書にも 【引用】____________ここから HTML文書を作る場合には、この仕様における、他のDTDセットではなく strict DTD に適合する文書を作るよう推奨する。 HTML 4仕様が定める各DTDの詳細については バージョン情報の項を参照のこと。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Conformance: requirements and recommendations (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )]より 【引用】____________ここから 【推奨しない】  推奨しない要素・属性とは、新しい枠組みができたことによって、陳腐化したものを指す。推奨しない要素は、リファレンスマニュアルの各所で定義し、推奨しないことを明記する。推奨しない要素は、HTMLの将来のバージョンでは廃止になる可能性がある。 ユーザエージェントは、過去との互換性のため、 推奨しない要素をもサポートすべきである。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Conformance: requirements and recommendations (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/conform.html#h-4.1 )]より  その後のXHYML1.0は、HTML4.01をそのままXMLにしたものですからTrnsitionalやFrameは残っていますが、XHTML1.1、そしてHTML5では、HTML4.01で非推奨だった要素や属性は姿をすべて姿を消しました。(uとiframeは除く)  私はもちろん、ここ5,6年はすべてstrictです。最近はHTML4.01strictであってもHTML5の仕様を念頭においてマークアップをしています。そのうえで、 ★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) ★The W3C Markup Validation Service ( http://validator.w3.org/#validate_by_input ) でチェックすることを心がけています。  さらに付け加えるなら、HTML4.01の仕様書であちこちで書かれている「HTMLは文書構造を」「スタイルシートはプレゼンテーションを」という目標も、文書構造を示す要素がHTML4.01では決定的に不足していたため、SEOが仕事であるプロ以外、文書構造によるマークアップも進みませんでした。  HTML5では文書構造を示す構造化要素やセマンティック(意味のある)要素が大幅に増えました。今後はdivを多用した意味のないマークアップも減っていくでしょう。(SEOを売り物にしている我々プロの出番がなくなるということ)  たとえば、HTML5では次のようなマークアップになります。 <body>  <header> <!-- 構造化要素 -->   <hgroup> <!-- 構造化要素 -->    <h1>大見出し</h1>    <h2>中見出し</h1>   </hgroup>   <article> <!-- 構造化要素 -->    <h3>要約</h3>    <p>文章</p>   </article>  </header>  <section><!-- 構造化要素 -->   <h2>本文見出し</h2>   <p>段落</p>   <article> <!-- 構造化要素 -->    <h3>補足</h3>    <p>文章</p>   </article>   <aside> <!-- セマンティック要素 -->    本文と直接関係しない記事   </aside>  </section>  <footer><!-- 構造化要素 -->   <section>    <h2>文書情報</h2>    <dl></dl>   </section>   <nav><!-- 構造化要素 -->    <h3>サイトマップ</h3>    <ul>     <li><a href=""></a></li>     <li><a href=""></a></li>    </ul>   </nav>  </footer> </body> これだと一目(人目?じゃなく検索エンジンの目にも)で、文書構造は分かれますよね。よって形だけHTML4.01ではなく、HTML4.01でも、 <body>  <div class=""header"> <!-- ヘッダ -->   <div class="hgroup"> <!-- 見出しグループ -->    <h1>大見出し</h1>    <h2>中見出し</h1>   </div>   <div class="article"> <!-- 要約 -->    <h3>要約</h3>    <p>文章</p>   </div>  </div>  <div class="section"><!-- 本文 -->   <h2>本文見出し</h2>   <p>段落</p>   <div class="article"> <!-- 関連記事 -->    <h3>補足</h3>    <p>文章</p>   </div>   <div class="aside"> <!-- 余禄 -->    本文と直接関係しない記事   </div>  </div>  <div class="footer"><!-- フッタ -->   <div class="section">    <h2>文書情報</h2>    <dl></dl>   </div>   <div class="navigation"><!-- ナビ -->    <h3>サイトマップ</h3>    <ul>     <li><a href=""></a></li>     <li><a href=""></a></li>    </ul>   </div>  </div> </body> とマークアップすべきですし、そうしてきました。SEOが仕事のプロは実はそうしている。 ★文書構造によるマークアップはそうしたものですし、このようにHTMLが書かれているとスタイルシートはHTMLを見なくても書けますし、デザインのためにHTMLに無意味なIDやclass名はつけなくてすむ。  たとえば本文中の脚注(補足)は div.section div.aside{ position:absolute;left:101%;width:170px; font-size:0.9em; border:solid blue 2px; } で、本文枠外の右に一回り小さい文字で表示される。・・ 結論 ★strictで作るべき。いずれなくなる要素や属性を使うな。 ★HTMLは文書構造に専念、プレゼンテーションはスタイルシートで

noname#139595
質問者

補足

ここまでご説明頂いて誠にありがとうございます。しかし、HTMLを学んで1ヶ月程度の私にはあまり理解できないです。すいません。

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

関連するQ&A

  • DOCTYPE宣言 Strict HTML4.01

    DOCTYPE宣言でStrict(HTML4.01のルールに厳密かつ正確に従う定義)を指定しているのですが、フレームが使用できます。HTML4.01では、フレームは使用不可と見たのですが、どうなっているのでしょうか?

    • ベストアンサー
    • HTML
  • html4で宣言していることになるのでしょうか?

    ソースの一番最初に <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> と書いた場合、 html4で宣言していることになるのでしょうか? html5は聞いたことが有りますが html4と言うのは存在するのでしょうか? html4.1と言うのは聞いたことがあります。

    • ベストアンサー
    • HTML
  • DOCTYPE は何で宣言すればいいのか

    DOCTYPE は何で宣言すればいいのかどうやって決めればいいですか? とりあえずネットからコピペしてきた <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> で、宣言してるのですが、果たしてこれがどういう意味かさっぱり分かりません。 とりあえず問題なくブラウザで閲覧できればいいのでしょうか?

    • ベストアンサー
    • HTML
  • !DOCTYPEを書く場所

    ◦<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> フレームを使用する場合は上記をhtmlの冒頭に書くそうですが、左右にフレームがある場合のページの場合、少なくとも3つのページ(俗っぽくいうと、index.html、frame1.html、frame2.html)を作成する必要があると思うのですが、さて、冒頭のDOCTYPE宣言文は、3つのページのうちのどれの冒頭に書けばよいのでしょうか。

  • DOCTYPE宣言は厳密に気にするべきか??

    現在WEBを独学で学んでおります。 そこでDOCTYPE宣言についていくつか疑問に思いました。 ひとつでもわかる方はご回答頂ければ幸いです。 1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> と、ソースの頭に記述しておいて <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> の内容で記述(XHTML 1.0 Transitionalで記述)することは可能ですか?? つまり、HTML 4.01 Transitionalを宣言して終了タグなど、XHTML 1.0 Transitionalの方式で書いても正確に表示されるかを知りたく思って おります。 2.DOCTYPE宣言を書いてないサイトが多く見受けられますが、 この場合はどのようにDOCTYPE宣言と捉えられるのでしょうか? また、この場合のデメリットとかはありますでしょうか?? 以上、わかる方いましたらよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • DOCTYPE 宣言

    最初のHTMLの宣言の各部分の意味を教えてください。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 最初のDOCTYPEはタグだということはわかるのですが それ以外、例えばPUBLICや『-』や『//』DTD,EN、最後のURLなどの意味がわからないです。

    • ベストアンサー
    • HTML
  • XHTML1.1でのXML宣言とDTD宣言の書き方

    XML宣言によるレイアウトの崩れ等の質問はありましたが今回の質問と同じ内容は私には見当たらなかったため質問させて頂きます。 XHTMLでのXML宣言を <?xml version="1.0" encoding="utf-8"?> と記述しています。 上記の記述と <?xml version="1.0" encoding="UTF-8"?> とで、文字コードの大文字か小文字かの違いだけなのですがどちらの方が良いのでしょうか。 同じくDTD宣言を <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> と記述しています。 XMLでは大文字と小文字を区別して扱うため必ず半角で書かなければならないとされていますが、XHTMLでマークアップされているサイトのソースを見るとどこもXML宣言での文字コードとDTD宣言では大文字が使用されています。 細か過ぎるというのは分かっているのですが厳密にはどのような記載が正しいのでしょうか。 ※今回投稿カテゴリーの小カテゴリーにて”XML”を選択致しましたがXHTMLについての質問の場合”XML”と”HTML”どちらにするべきでしょうか。 合わせてご返答、又はご意見を頂戴できれば幸いです。

    • 締切済み
    • XML
  • HTML4.01について。

    タグ打ちでHPを作るときに、一番初めに <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> など、DOCTYPE宣言を書かなければいけないということを聞きました。 指定するバージョンにはHTML3.2、HTML 4.01、 HTML4.01 Strictなど色々あるみたいなのですが、 自分が書いているタグがどのバージョンに当てはまるのか分かりません。 どうやったら調べられるのでしょうか?

  • <!DOCTYPE html>について

    html4.01のファイルの最初に<!DOCTYPE html>と記述している サイト・参考書を見かけるのですが、 これは、何を意味しているのでしょうか? 私は、いつも以下のように記述しています。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">(strict使用宣言) 省略した形<!DOCTYPE html>で記述すると、このHTML4.01では どのルール(Strict?Transitiona?Frameset)が適用されるのでしょうか? ご教授 よろしくお願いします。

    • ベストアンサー
    • HTML
  • HTMLファイル&DTDについて

    ホームページ作成のテキストに次のように書かれた文言があります。 --------------------------------------- 【HTMLファイルで、どのようなタグや属性が使用されているかを宣言した記述部分を「DTD」といいます。HTMLファイルは、まず最初に「DTD」を記述し、続けてHTMLファイルを記述することが約束事になっています。】 --------------------------------------- もし、「DTD」と言うものを記述しないまま、HTMLファイルを作成した場合、何らかの不都合が生じると言うことでしょうか?

電子ピアノの荷重分散
このQ&Aのポイント
  • 電子ピアノ「HPM-10」の荷重分散について教えてください。
  • 荷重分散について詳しく教えてください。
  • ローランド製の電子ピアノで荷重分散が可能なのか教えてください。
回答を見る