3キャリア対応の携帯サイトを作るのは、非常に難しい。
少し前のCHTMLで作ると装飾部分にとても制約が多い。
DOCTYPE宣言もそれぞれ違う。XHTMLで作成する場合のDOCTYPE宣言は以下のようになる。
docomo
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
au
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "http://www.openwave.com/DTD/xhtml-basic.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
SoftBank
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
PCなど
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
au、SoftBankは、以上のDOCTYPE宣言でXHTMLモードになり、外部スタイルシートも利用出来るようになる。しか?し、docomoがすごくややこしい。DOCTYPE宣言してもXHTMLモードにならない。
以下の4点が揃ってはじめてXHTMLモードになる。
. DOCTYPE宣言。
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10.dtd">
(Ver部分を変えると使えるタグが変わる。新しければ利用できるタグが増える。但し、対応していない機種はそのタグを無視する。)
. コンテンツ タイプの指定。
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
. 拡張子が.htmlか.xhtml。
. サーバにおいて正しいHTTPヘッダの出力。
.htaccessにてどちらかを追加
AddType application/xhtml+xml .htm .html
AddType application/xhtml+xml .xhtm .xhtml
以上4点でXHTMLモードになってもスタイルシートは、外部の利用は出来ない。インラインで書く必要がある。
汎用サイトを作る場合、「au / SoftBank / XHTMLモードに対応していないdocomo」と「XHTMLモードに対応しているdocomo」に分けて作る必要がある。
「XHTMLモードに対応しているdocomo」のメリットは、装飾が出来ることのみ。
例えば、文字に背景色を指定したり、背景の画像をいくつか小分けに指定したりとなる。
そこまで求めてないのであれば、docomoのXHTMLモードを考慮しないように作れば問題ない。それにdocomoの機種は、XHTMLとCHTML両方対応しているから問題ない。
もう少し他社と互換を持たして欲しいものです。
追加:
2008年10月26日に携帯サイトのDOCTYPE宣言、切り替え(PHPをSSIにて利用)の記事を追加しました。