• ベストアンサー

xhtmlにxml宣言を行うと表示が崩れます。。。

現在xhtmlでページを作成しているのですが、xhtmlにはxml宣言が必要ということで、<?xml version="1.0" encoding="UTF-8"?>を挿入しました。 しかし、この宣言を入れると表示が崩れてしまいます。左右autoのセンター表示が左に寄ったり、boxのサイズが変わったりと・・・。 何が原因かもわからずに困っています。 何方かアドバイスいただけたら幸いです。 宜しくお願いいたします。

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

  • ベストアンサー
noname#20377
noname#20377
回答No.2

きちんと理解していれば問題ありません http://www.ichiro.to/note/doctypeswitchによると >XML は文字コードのデフォルトが UTF-8 で、その場合 XML宣言を記述しなくてもよく、それ以外の文字コードを利用する場合は、原則として XML 宣言に charset 記述が必要。ただし、xhtml1.0 の場合、仕様書の第2版で "上位のプロトコルで文字コードを指定すれば XML宣言はなくてもよい" となったそうです。 です。 参考としてXML 1.0 Third Editionの仕様書には以下の記述があります。 http://www.w3.org/TR/REC-xml/#charencoding In the absence of information provided by an external transport protocol (e.g. HTTP or MIME), it is a fatal error for an entity including an encoding declaration to be presented to the XML processor in an encoding other than that named in the declaration, or for an entity which begins with neither a Byte Order Mark nor an encoding declaration to use an encoding other than UTF-8. Note that since ASCII is a subset of UTF-8, ordinary ASCII entities do not strictly need an encoding declaration.

apple_mango
質問者

お礼

有難う御座いました。 大変勉強になりました!!

その他の回答 (1)

noname#20377
noname#20377
回答No.1

ひっじょうに有名な話です DOCTYPEスイッチ http://www.remus.dti.ne.jp/~a-satomi/bunsyorou/Doctype-Switch_situation.html でIEはxml宣言があると互換モードで動くのですが 互換モードだとmargin:autoが有効になりません。 http://www.mars.dti.ne.jp/~fuming/advanced/dtd.htm 一般的には文字コードをUTF-8またはUTF-16にすることによってxml宣言を省略するか、 あるいは text-alignに関する別なバグを利用するようです http://cssbug.at.infoseek.co.jp/detail/winie/b035.html その他IEの互換モードでは以下の方法で長さを計算しますから http://cssbug.at.infoseek.co.jp/detail/winie/b001.html その問題が発生するのです

apple_mango
質問者

お礼

himajin3500さん有難う御座います。 そうですか・・・どれをするにも少々無理がありますね? いっそxmlの宣言を取ってしまったら?と思うのですが、こちらの方が問題なのでしょうか??

関連するQ&A