DTDについての簡単な話
DTDとは何か、という前にhtmlにしろxhtmlにしろ、いくつかのバージョンがありそれぞれ微妙に違う点があるので、まずそれをコンピューターに教えてあげないと、バージョンを勘違いして間違った解釈をしてしまう可能性がある。
ということで、htmlもxhtmlも一番最初に「これはこういうバージョンの決まり事に沿って作ったファイルですので、そういう事で表示の方よろしく」というお知らせ文を入れる必要がある。それがいわゆるDTD(Document Type Definition)というもの。日本語だと文書型定義と呼ばれる。
DWなどのソフトを使っている場合はファイルを新規作成すると自動で勝手にソフトが選んだDTDが入っている事もあるが、自分が作りたいバージョンのDTDが入っているかどうかの確認は一度しておいた方がいい。
というのも、これからxhtmlで作りたいのにhtmlのDTDが入力されてたらえらい事だからだ。DW8なんかでは新規作成の際に表示されるパネル上で好きなDTDを選べるので問題ないかもしれないが。
何パターンあるの?という話だが、HTML4.01が3つ(Strict・Transitional・Frameset)XHTML1.0が3つ(Strict・Transitional・Frameset)、XHTML1.1は1つ、とそれぞれDTDのタイプを持っている。
「XHTML1.1が一番新しいんでしょ?んじゃそれでいいや。」という発想をされる方もいらっしゃるかもしれないが、新しいからいいというものでもない。
個人的には最近の一番の主流はXHTML1.0のTransitionalかStrictなんじゃないかと思う。もちろんhtml4.01を採用しても何の問題もない。
Strictは厳密型、つまり記述が一番厳しいと。かといって記述にミスがあったからいきなり表示されなくなるわけではなく、ただ文法上はここが間違ってますという部分があるだけの話で、これからwebを始める方で、ちゃんとした(x)htmlを書けるようにしたい!という方は最初からStrictで始めればいいと思う。厳しいといっても次に書くTransitionalより数箇所だけ気をつけることがあるだけで、慣れれば何ともない。
Transitionalは移行型、過去のバージョンの内容との互換性を保つ為に用意された文書型定義。
Framesetはフレーム利用型。読んで字のごとく、フレーム使う方はこれ。でも今はもうフレームを使う制作者は・・・ほとんどいないんじゃないかと思うので、フレームについてはいろいろ議論されてるのでググれば分かると思うが、StrictかTransitionalをおすすめ。
HTML4.01、XHTML1.0には上記3つのタイプがあるわけだが、XHTML1.1は1つ。1.1ではStrictのみということになる。XHTML1.0のStrictとの違いはルビ関連の要素が使用できる(実はルビ関連のタグはXHTML1.1でしか定義されていない)あとはname属性の廃止、lang属性の廃止・・・そのくらい。
でも先日のhtmlとxhtmlの違いの中でもチラっと書いたとおり仕様上name属性が使えないとなると古いブラウザでid属性をサポートしてないブラウザの場合ページ内リンクなんかは機能しないことになる。なので、私は現在はXHTML1.0StrictかXHTML1.0Transitionalのどちらかを採用している。
で、もう一度言うが、XHTML1.1が一番新しいからこれがいいっていう事ではない。さらに言うと、htmlは古いからxhtmlの方がいいとかそういう事でもない。また、Strictの方がTransitionalより厳しいから偉いとかそういう事もまったくない。
過去の別ブログの方で関連記事を書いたので、参考までにリンク・・・。
RED LINE:strict にするか transitional にするか
あと、地味にXHTML Basicとかいうのもある。
これは携帯電話やPDAなどを想定して最低限のXHTMLで構成されたものなのだが・・・あんまり登場しない気がするのでここでは割愛。
<< htmlとxhtmlの違い | CSSとうまく付き合う予備知識 >>
トラックバック
このエントリーのトラックバックURL:
http://redline.hippy.jp/cgi/mt/mt-tb.cgi/100