DOCTYPEによる宣言

[上に] [前に] [次に]
CG−2 [E-Mail] 1999/04/11(日) 23:40:44
DOCTYPEによる宣言は省略してもいいのでしょうか?
省略しても良いという話は聞くのですが…
もし、注意点などがありましたら教えて下さい。
宜しくお願いします。

みむお 1999/04/12(月) 00:44:26
HTMLである以上、省略してはいけません。

ただし、IEやネスケは、DOCTYPE宣言を無視しているので、
書かなくても表示には影響が出ません。

Selly [E-Mail] 1999/04/12(月) 01:32:33
HTMLがSGMLアプリケーションである以上、DTD宣言は必須です。
DTD宣言を解釈して表示を変更するブラウザが現存するかは不明ですが。

#RFCにはDTD宣言を省略した場合はHTML/2.0として解釈すべきと書いてあるらしいです(未確認)

CG−2 [E-Mail] 1999/04/12(月) 01:54:36
さっそくのお答、ありがとうございます。
「書かなければならない」とのことですが
もし省略してしまった場合、どういった影響がでるのでしょうか?
また、DTD宣言は本等にのっているものをそのまま写してもいいのでしょうか?

まゆ 1999/04/12(月) 01:54:45
「ちゃんとした答え」にはならないと思いますが...。(^-^;
ご参考までに。。。

私が文法チェックで使用している「Another HTML-lint gateway」
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
によると、
「DOCTYPE宣言は、文書がHTMLであり、さらにどの仕様のHTMLで書かれているのかを明示するものです。」とあり、
「文法的にもHTMLとしても正しいが、WAIやRFCで推奨されていないもの。」とあります。
で、みむおさんのおっしゃる通り、MSIEとMozillaなどには対応するDOCTYPEがありません。(自分の都合のいいようにHTMLを表示してくれる)

このサイトで文法チェックを実際にしてみるとおわかりになると思いますが、HTML3.2の宣言では、例えば<td>にbgcolorを使用すると減点されてしまうであるとか、「えっ」という結果になると思います。要は、3.2では使用してはいけない、だけどブラウザ上ではきちんとたいてい表示される...。

うーん。なんだかよくわからなくなってきましたが...。

注意点として、上げられることといえば、
エディターを使用する場合、勝手にエディターがDOCTYPE宣言を生成してくれるわけなのですが、
<!DOCTYPE HTML PUBLIC "HTML 3.0">
<!DOCTYPE HTML PUBLIC "HTML 3.2">
<!DOCTYPE HTML PUBLIC "-//IBM//DTD HPB HTML//EN">
この3つは、IBM HomePage Builderが、そして
<!DOCTYPE HTML PUBLIC "-//W3C//DTD W3 HTML//EN">
これは、Internet Explorer 4.0が生成するらしい、ということです。
どれも間違った文なので、後から実際にHTMLソースを見てチェックする必要があるようですね。

まゆ 1999/04/12(月) 02:06:23
CG-2さん:DTD宣言は本等にのっているものをそのまま写してもいいのでしょうか?

本などに掲載されているものでOKとは思いますが、
意味まできちんと書かれているものは少ないと思われますので、
こちらも参考にされてはいかがでしょうか。
「HTMLノート-文書タイプ宣言の意味」
http://www.kanzaki.com/docs/html/doctype.html
宣言文の各意味について、詳しく説明されています。

CG−2 [E-Mail] 1999/04/13(火) 01:54:41
[[解決]]
お答、ありがとうございました。
おかげさまで、かなり疑問が解けました。
本当にありがとうございました。

何かありましたら、その時はまた宜しくお願いします。

[上に] [前に] [次に]