プロが教える店舗&オフィスのセキュリティ対策術

XHTMLの宣言文についてネットで調べても使い方がよくわかりませんでした。
以下のXHTMLの宣言文について教えて下さい。

「XHTML 1.0 Strict」はどういう時に記述するんでしょうか?

「XHTML 1.0 Transitional」はどういう時に記述するんでしょうか?

「XHTML 1.0 Frameset」はどういう時に記述するんでしょうか?

「XHTML 1.1」はどういう時に記述するんでしょうか?

「XHTML Basic」はどういう時に記述するんでしょうか?

すみませんが説明していただけませんでしょうか。
宜しくお願いします。

A 回答 (3件)

ネットで調べても解らなかったという事なので、ぶっちゃけて個人的見解を書きます。


 まず、Strict、Transitional、Framesetの違いは簡単です。
・Strictを指定した場合、規則どおりに書かなければならないという事で、非推奨の書き方
は許されません。
・Transitionalは、互換性を考慮して、非推奨の書き方もとりあえず許してくれます。
・Framesetはその名のとおり<framset>、<frame>でページを作る時に指定します。もちろん
xhtmlでは非推奨です。

 次に、XHTML 1.0とXHTML 1.1の違いは、いまひとつよくわかりません。
ちなみにXHTML 1.1はそもそも厳格ですから、Transitional、Framesetなんてのは
ありません。XHTML 1.1はモジュール化されていて、DTDをちゃんと書けば、いろんな
XHTMLのサブセットが作れると言われてますが、この辺が具体的に?な所です。
 そおいった意味で、XHTML Basicというのはまさに、XHTML 1.1はモジュール化を
使って、携帯端末向けページ用のXHTMLとして定義されたものらしいです。

よって、現状、「XHTML 1.0 Strict」でよい点を取れるように作っておけば無難です。

というより、今後の事も考えるなら、

DOCTYPEはHTML5.0を宣言しておいて、XMLであるのを名乗る
のが、粋じゃないかと...(もちろん中身をXML1.0仕様どおりにしなきゃだめですが)

こんなふうに、
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml" />
......
    • good
    • 0

>XHTMLの宣言文についてネットで調べても使い方がよくわかりませんでした。


・・・【中略】・・・
>????はどういう時に記述するんでしょうか?

 どうも大きな誤解をされているようです。

 XMLの宣言文、HTMLのDOCTYPEは、元来が「どういうときに記述する」ではなく、【著者が】以下のXML,HTMLをどういう仕様で記述するかの宣言です。
「どういう時に記述する」という受動的なものではなく、「今から記述するマークアップ文書はこの形式を使う」という著者側の宣言です。
 あなたが文書形式に、
・XHTML 1.0 Strict、
・XHTML 1.0 Transitional
・XHTML 1.0 Frameset
 以上はHTML4.01をXMLに合わせて書き換えたもので基本的にHTML4.01と同じものです。
・XHTML 1.1
・XHTML Basicを選択すれば
 XHTMLで非推奨だったものを排除し、モジュール化して必要なものを必要に応じて使えるようにしたもの。基本的にはXHTML1.0と大差はない。

 ブラウザ(特にIE)は、XML宣言や、DOCTYPEでどのようにレンダリングするかを判断しますが、それはあくまで旧仕様のHTMLのレンダリングとの後方互換のためで、ブラウザの表示を目的に「どういう時に記述するんでしょうか?」と考えるのは誤りです。

 W3Cでは、HTMLは4.01を最後にXHTMLに移行すると一端は決断しましたが、HTMLの長所(私は欠点だと思うが)を継続しようという圧力で、いったんは排除したHTML5の回帰しました。
・XHTMLでは<p>ほげほげ・・<p>ほげほげ・・・<h2>なんたら<h3>なんとか---という簡略化ができたけど、XHTMLでは、<p>ほげほげ・・</p><p>ほげほげ・・・</p><h2>なんたら</h2><h3>なんとか</h3>---と書かなければならない。
 簡略表記は著者には楽かもしれないが、ブラウザにはとても大きな負担になる。
 
とか・・
    • good
    • 0

「XHTMLを使用する」「XHTML5を使用できない」という前提があるとして。



> 「XHTML 1.0 Strict」はどういう時に記述するんでしょうか?
ブラウザ毎のデフォルトCSSの違いで手間をかけたくないとき。
FirefoxのDOCTYPEスイッチで Full Standards モード にスイッチして欲しいとき。

> 「XHTML 1.0 Transitional」はどういう時に記述するんでしょうか?
HTML4.01 Transition からの移行で非推奨要素、非推奨属性などの廃止に時間をかけたくないとき。
FirefoxのDOCTYPEスイッチがAlmost Standards モードにスイッチしても構わないとき。

> 「XHTML 1.0 Frameset」はどういう時に記述するんでしょうか?
フレームを宣言する必要がある時。

というところかな。
クロスブラウザが面倒なので、基本的にStrict一択です。

個人的には、XHTML5に移行したいところですが、クロスブラウザを考えるとXHTML全般において採用しがたいところですね。
厳格なXML構文を使うと、IE8-で対応できません。

・XML宣言を省略したら、外部からXHTMLをXMLとし読み込む際に正しくパースされないかもしれない。
・<style> でCDATAセクションを使うと正しくスタイルを読み込めない。

などIEはいろいろと不便です。
なので、私がXHTMLを使う場合は「IEを無視して構わないとき」というのが大前提になっています。

Mozilla's DOCTYPE sniffing - MDC
https://developer.mozilla.org/ja/Mozilla%27s_DOC …
DOCTYPEスイッチによるレンダリングモード別デフォルトCSSについて - プログラマ 福重 伸太朗 ~基本へ帰ろう~
http://d.hatena.ne.jp/japanrock_pg/20100518/1274 …
hxxk.jp - DOCTYPE スイッチについてのまとめと一覧表 (HTML 5 や IE 8 Beta 2 のモードスイッチなどの情報も含んだ 2008 年版 )
http://hxxk.jp/2008/09/29/0118
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!