Wed 22 Mar 2006
IE6でのXML宣言の問題と回避方法
Category: CSS、XHTML , WordPress
You can leave a response, or trackback from your own site.
Internet Explorer6は、XHTMLの <!DOCTYPE...宣言よりも前に文字やスペースがあると、古いブラウザ用の表示モード(互換モード)になってしまいます。
この問題を実感してもらうためにXHTMLを書いてみました。IEでの表示と、FirefoxやOperaなどでの表示を見比べてみてください。
表示サンプル:XML宣言の問題を視覚でとらえる
この不具合は、サイトの表示が崩れる大きな原因にもなります。IE 6で互換モードになってしまうと、CSSで指定したwidthプロパティやheightプロパティの解釈が変わってしまうのです。この問題を避けるため、XML宣言をしないサイトも多いようです。
IE6以外でのみXML宣言をするPHPコード
そこで以下のコードを、テーマファイルに書き込みましょう。header.phpの一番最初にペーストすればOKです。<?php と ?>の前後に、余計なスペース・改行などは入れないでくださいね。
<?php
$ua = $_SERVER['HTTP_USER_AGENT'];
if (!(ereg("Windows",$ua) && ereg("MSIE",$ua)) || ereg("MSIE 7",$ua)) {
echo '<?xml version="1.0" encoding="' . get_settings('blog_charset') .'"?>' . "\n";
}
?>コードの簡単な説明
上記のコードは、訪問者のブラウザがWindowsのIE以外だった場合に、XML宣言をするようになっています。ただし、XML宣言の不具合はInternet Explorer7.0bでは直っているそうなので、その場合の処理も書きました。
関連記事:
少しきびしいHTML構文チェック
November 21st, 2006 at
WordPress→IE6でXML宣言...
結局、Another HTML-lint gatewayが気になって仕方がないので、まずxhtml 1.0 Transitionalからxhtml 1.0 Strict (more...)
February 6th, 2007 at
ウェブ標準ってか!?...
Movable Type でブログを運営していた時に本当にお世話になった「小粋空間」ですが、最近は Movable Type に留まらず、WordPress に関しても (more...)
February 12th, 2007 at
スタイルシートにおけるIE6の不具合...
今までずーっとIE6を使っていて、そんなもんだと思って気にも留めなかったんですが、IE7とOpera、Firefoxを使うようになって、スタイルシートの不具合が目に付く (more...)
April 15th, 2007 at
覚書:XML 宣言の仕方...
ウェブ標準に拘って、いろいろと XHTML や CSS をいじっているのですが、いつまでたっても <!DOCTYPE…宣言で減点が大きかった・・・試行 (more...)
May 29th, 2007 at
XHTML における「XML 宣言」の方法...
XHTML 1.0 では、XML 宣言することが強く求められる!という事は良く知られているようですが、Internet Explorer 6.0 (IE6.0) が、そ (more...)
November 27th, 2007 at
XML宣言...
を!するとIE6以下ですごいことになります…><
IE6でのXML宣言の問題と回避方法
... (more...)
December 18th, 2007 at
WordPressでXML宣言をする方法(IE6以外)...
WordPressネタです。興味がない場合は、飛ばしてください。
WordPressで普通にXML宣言をするとエラーが出てしまいます。
画面が真っ白になって、 (more...)