こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

使えるタグ、使えないタグ、使わないほうがいいタグ…等

タイトルの通り、使えるタグ、使えないタグ、使わないほうがいいタグ…等の違いを頭の中で整理することができません。
具体的に何で混乱しているかというと、

1、DOCTYPEスイッチで標準準拠にした場合は、color:fff;などの記述が無視されるだけで、htmlタグの使える使えないには関係がない…?
2、非推薦のタグは、使用することはできるが将来廃止になる可能性があるから、前方互換を考え使わないほうが良い…?
3、廃止タグは、使用することが出来ない。(記述しても無視される)…?
4、廃止タグを使った場合も、まだそのタグが廃止されていないころのブラウザを使えば問題なく使用可能…?(使用したいわけではなく、可・不可の問題で)
5、また、html5が話題になってきていますが、html5で廃止されたタグも現行のブラウザでは後方互換のため使用することが可能…?
6、html5では使えないが、ブラウザはhtml5にもhtml4.01等にも対応しているので使用ができる。という解釈で合っていますでしょうか?
7、<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">などとしても、html5のタグが反応するのはどうしてなのでしょうか?

間違えている項目等、指摘していただければ幸いです。どうかよろしくお願いします。

投稿日時 - 2010-02-10 19:22:33

QNo.5665477

すぐに回答ほしいです

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

仕様書を読めば、すべて書いてあることですよ。
 とりあえず、HTML 4.01仕様書 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/cover.html )からだけ

【引用】____________ここから
しかし、様々なHTMLバージョンの実装間での実験及び相互運用性を促進するため、次の動作を推奨する。
●認識できない要素があった場合、ユーザエージェントは、内容のレンダリングを試みねばならない。
●認識できない属性があった場合、ユーザエージェントは、当該属性定義全体(すなわち、属性とその値)を無視しなければならない。
●認識できない属性値があった場合、ユーザエージェントは、デフォルトの属性値を用いねばならない。
●宣言されていない実体があった場合、この実体を文字データとして扱わねばならない。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Performance, Implementation, and Design Notes (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/appendix/notes.html#h-B.1 )]より

【引用】____________ここから
注意。 1999年12月24日版のHTML 4.01において、HTML作業グループは次の方針を確約する。
●HTML 4 DTDに将来発生する変更は、現在の規定によるDTDに適合する文書を不適正化するものではない。 HTML作業グループは、バグを修正する権利を予約する。
●現在の規定に適合するソフトウエアは、将来の HTML 4 DTD にある認識不能な機能を無視してよい。

 これはつまり、文書型宣言において、著者は最新版のHTML 4を指し示すシステム識別子を安全に用い得るということを意味する。 著者はまた、特定DTDで検証することが求められる際には特定日付版のHTML 4 DTDを示すシステム識別子を用いてもよい。 W3Cは、特定日付版について、原形式のまま原アドレスで無期限に得られるよう、あらゆる努力を払う。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[The global structure of an HTML document (ja)( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.2 )]より

 などあちこちに、

★すなわち
 Document Typeは、あくまで、そのHTMLがどのルールによってかかれているかを宣言するもので、その宣言とそれによって許される要素名・属性などについては、将来的に表示が保証されるという意味です。

 DOCTYPEを書け!書かなければならないのは、この保証を担保するためです。
 DOCTYPEが書かれていて、それに適合するように書きなさいとは、そういう意味です。
 一方でブラウザには、適合していなくても、可能な限り表示を努力することが求められていますが、義務ではない。
 
と考えれば、すべての質問に対する答えはお分かりですよね。・・・そのように、仕様書に書いてある。

投稿日時 - 2010-02-10 21:35:46

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

本来、DOCTYPEとの不一致などは、文法誤りのエラーとして、一切の表示しなくてもかまわないものでしょう。
ただ、現状は、そんな間違ったものがとても多い上、表示できないとブラウザの方が悪い、と逆に攻められかねない状態です。

そのため、現在はブラウザ側でできるかぎる対応して「ただしい」表示ができるようになっています。
廃止されたタグも新規タグも、対応しているならDOCTYPEを無視して表示しようとします。

以上から原状は
1.理想はYesだが、実際はNo(無視しない)
2.Yesだが、実際は使える
3.理想はYesだが、実際はNo(無視されない)
4.Yes。ただし、「HTML4以上専用」とかでない限り、最新版のブラウザでも旧規格には対応している。
5. 4と同じ理由Yes.
6.Yes
7. 最初に書いた通り、DOCTYPEより実際に使用されているタグを優先しているから。

投稿日時 - 2010-02-10 20:08:59

あなたにオススメの質問