2007-10-28

IE7だったらXML宣言をするPHPを書く

IE6でXML宣言をすると、レンダリングが後方互換モードになってしまい、CSSデザインが崩れるのは周知の事実と成っています。
XML宣言を消せば良いんだが、記述上、標準準拠しなくなる。(別に良い様な気もするけど)
大手サイトさんを見ると、XHTMLで記述されたサイトでは、宣言していないサイトが多かった。
私も、PHPでIEは宣言しないようにしていたが、IE7は直っていたらしいので、PHPの条件分岐を変えておくことに。
<?php $usa = $_SERVER['HTTP_USER_AGENT'];
if (!(ereg("Windows",$usa) && ereg("MSIE",$usa)) || ereg("MSIE 7",$usa)) {
echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";}
?>
条件分岐内容は、ユーザーエージェントが、
"Windows+MSIE"以外か、"MSIE 7"はXML宣言を出力する。

IEがバージョンアップになったら、条件を追加すれば良いと思う。
例 IE8が出たら(使えるかは無保証)
if (!(ereg("Windows",$usa) && ereg("MSIE",$usa)) || ereg("MSIE 7",$usa) || ereg("MSIE 8",$usa))

最近のCMSは、XHTML記述だったりするので、使えるかも知れません。

今後、自分の作るサイトは、CMSで仕方無い場合を除き、HTML4で書くことにします。
XHTMLの方が、厳格で好きなのですが、普通のサイトならHTML4に軍配上がるのかな。
見る方からしてみれば、どっちでもいいんだけどね。

FlashやJavaScriptに逃げるってもあったりね。

0 コメント:

コメントを投稿