そろそろしっかりHTML その2:HTMLの構造-DTD宣言-
全然関係ないけど、花粉症が辛すぎてマジで花粉に殺されそうで人間様が花粉如きに殺されてたまるかと思って花粉対策とか書いてありそうなとwikipediaの花粉の項を調べてみたら、花粉はおしべから出てるものでめしべとくっついて受粉するとか書いてあって要するにそれ精子じゃんと気づいて今夜中の2時だけど猛り狂ってる。なんで精子ぶっかけられなきゃならないんだよクソが。
HTML文書の構成要素
1つのHTML 4文書は、次の3つの部分から構成される。
1. HTMLバージョン情報を含む行。
2. 宣言的ヘッダの部分 (HEAD要素として区切られる)。
3. 文書の実際のコンテンツを含む、本体。本体は、BODY要素か FRAMESET要素のどちらで実装されてもよい。
HTML文書の構成要素は3つあって、というお話
framesetって何だよ?という事についてはhttp://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/present/frames.html#edef-FRAMESETまたはhttp://www.tohoho-web.com/html/frameset.htmを参照。
HTML4.01では3つあるDTD宣言のうち、frameが使えるのは1つだけ(framesetDTD)ということからも分かるように、HTML4.01の時点での仕様的に廃止の意図が見えるし、html5じゃ完全に廃止。frameは本来cssで表現すべきプレゼンテーション的な要素なため(だと思う)、今はあまり使われてない。そんな過去の遺物。
HTMLバージョン情報(DTD宣言)
HTML 4.01仕様は、3つのDTDを規定しており、著者は自分の文書に、次の3つの何れかの文書型宣言を含めねばならない。 各DTDは、サポートする要素が異なってる。
- HTML 4.01移行型DTD。 これは、厳密型DTDのすべての要素・属性に加えて、推奨しない要素や属性も含む(推奨しないもののほとんどは視覚的プレゼンテーションに関わるものである)。 このDTDを用いる文書は、次の文書型宣言をせよ。
html4.01においてDTD宣言が持つ意味は大きく2つ。
1つは、html4.01がSGMLアプリケーションである故、マークアップの構成要素、その順序(親子関係)、指定できる属性などについて のルールが記述されていること。
もう1つはDOCTYPEスイッチというブラウザのhtml,cssの描画方法。まぁほとんど1番目とかぶっているんだけど。
http://www.conifer.jp/test_doctype.html
ちなみにhtml5の場合、そもそもhtml5はSGMLアプリケーションではなくなったため、DTD宣言の意味はDOCTYPEスイッチの切り替え(標準モードのトリガー)としてしか意味を持たない。
http://standards.mitsue.co.jp/resources/w3c/TR/html5-diff/#doctype