xml宣言するとIE6でレイアウトが崩れる問題

Internet Explorer6は、XHTMLの ドキュメント宣言よりも前に文字やスペースがあると、古いブラウザ用の表示モード(互換モード)になってしまいます。

これによりサイトの表示やレイアウトが崩れる原因にもなるようです。
IE 6で互換モードになってしまうと、CSSで指定したwidthプロパティやheightプロパティの解釈が変わってしまうのです。この問題を避けるため、XML宣言をしないサイトも多いようです。

まぁそれでも崩れないように組むのが常識なのですが、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";
}
?>
/*----------------------------*/
これでIE6以外にXML宣言ができるようです。

日時: 2008年10月 3日 16:20 | | コメント (195)

XHTMLとは?

XHTMLとはもともとウェブページを記述するためのHTMLから発生したXMLに近い言語。
XMLとは文書やデータの意味や構造を記述するためのマークアップ言語の一つ。

まぁhtmlみたいなxmlみたいな感じ?
要はXHTMLは人にも見やすく、ロボットにも読みやすいという感じですかね。
ブログが何で検索順位などにいいかというと書いた後の構築時にXHTML、またはHTMLをはきだすと同時にシステムがXMLも記述してくれるんです。

もともとHTMLはXMLの親にあたるSGMLから派生した言語で、Webブラウザメーカー主導で独自の拡張が続いてきた。このため、HTMLはXMLとは一部整合性を欠く言語仕様となっているが、両者の違いはある程度吸収できる範囲のものであるため、従来のWebブラウザでも問題なく見られ、かつXMLに準拠した文書を作成する言語仕様としてXHTMLが作成された。 (引用http://e-words.jp/)

ただXHTMLですき放題構築するではなく、いかにW3C(ウェブのルールを作っている集団?団体?)のルールにのっとり、ユーザビリティ、アクセシビリティを意識し、いかにそのマークアップ言語を準記しているかに僕は魅力を感じます。

【余談】
僕のお仕事はある意味XHTMLコーダーであり、SEOの動向を常時管理したりしてます。

そして初歩的なことだけど、DTD(Document Type Definition)
これは、このルールに乗っ取って記述しますよーってのが基本的に大事になるでしょう。
今主流の宣言文(<html>の上段に記述してある定義文)
html4.0 tranditional
html4.0 strict
xhtml 1.0 Tranditional
xhtml 1.0 strict
xhtml 1.1 などが主流でないでしょうかね。

ここで気になる”tranditional”と”strict”の違いは
tranditionalはやや甘いルール
strictは意味の通り”厳格”なルール
となっています。

僕は基本的にXHTMLのStrictでコーディングしています。
/*---CSS------*/
div#俺{
     display:none;
     margin:0;
     padding0;
    width:80px;
     height:165cm;
    border:1px #888 solid
}

div#俺 P{
    font-size:100%;
    padding:5px;
}
di#俺 h猫{
    cute:max;
    overflow:too much over;
}
/*---CSS--end----*/

とするとxhtmlでは
<div id="俺">
    <h猫>にゃー!</h猫>
    <p>猫大好き</p>
</div>

んな感じで今日はおやすみ~♪

続きを読む "XHTMLとは?" »

日時: 2007年9月11日 23:45 |

今が旬なお勧めサイトのご紹介!!

富貴蘭の事ならシード園芸

FX情報