F1層向けのサイトでは携帯サイトが必須ですが、携帯サイト制作はなにかとやっかいなことが多いので、PCサイト制作時とはことなる部分がいくつかあります。
まずソースの書き出し部分のDOCTYPE宣言から異なります。
携帯向けサイトについては、W3Cによる「XHTML Basic 1.0」と、WAPフォーラムによる「XHTML Mobile Profile 1.0」という仕様が公開されていますが、各キャリアは独自のDOCTYPE宣言を推奨しています。
Docomo : http://www.nttdocomo.co.jp/service/imode/make/content/browser/xhtml/about/
AU : http://www.au.kddi.com/ezfactory/tec/spec/wap_rule.html
Softbank : http://creation.mb.softbank.jp/column/column_05_02.html
DOCTYPE宣言は、「コードの仕様を明示的にする」という意味を持ちます。
クライアント側は、どのような種別のコードなのかを宣言から読み取り、表示の仕方を変えています。
HTMLでは、バージョンごとに使用できる要素(タグ)や属性、要素の配置のしかたについて厳密に定義されています。
これはDTD(Document Type Definition:文書型定義)をDOCTYPE宣言で指定することで、そのバージョン規則に添って表示します。
キャリアによって表示の仕方が異なるので、ベストなやり方はキャリアの推奨するDOCTYPE宣言に則ったソースを3つ用意して振り分ける方法ですが、このやり方だとメンテナンスに手間がかかります。
ですので、弊社では1つのソースで3キャリア対応するために、キャリア毎にDOCTYPE宣言を振り分けています。
振り分けるための情報は、ユーザーエージェントを使っています。
$agent = $_SERVER['HTTP_USER_AGENT'];
if(ereg("DoCoMo",$agent)){ //Docomoの場合
#header('Content-Type: application/xhtml+xml; charset=Shift_JIS');
echo "n";
} else if(ereg("^UP.Browser|^KDDI", $agent)){ //AUの場合
echo "n";
} else if(ereg("^J-PHONE|^Vodafone|^SoftBank", $agent)){ // SoftBankの場合
echo "n";
}else{
echo "n";
}
また、振り分けをせずに3キャリアをカバーする汎用的なDOCTYPE宣言を選ぶとすれば
「XHTML Mobile Profile 1.0」がよく使用されています。
各キャリアのXHTMLの仕様を見ると「XHTML Mobile Profile 1.0」に従って記述されていることがわかります。
w3c XHTML Basic : http://www.w3.org/TR/2000/REC-xhtml-basic-20001219/
関連した記事はありません。