携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-
XHTML+CSSで一歩進んだモバイルサイトを作るテクニックを幅広く紹介☆
このエントリーを含むはてなブックマーク このエントリーをブックマークに追加
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーを含むはてなブックマーク このエントリーをブックマークに追加
最近発売されているドコモの機種(FOMA)のブラウザにはたいてい
iモードHTMLとiモードXHTMLの両方に対応したモードが搭載されています。

例えば、最新のハイエンド機種FOMA 904iでは、ドコモの技術情報の端末スペック表を見ると、
iモードHTMLはバージョン7.0、iモードXHTMLは2.1に対応していることが分かります。

これは、携帯電話が機能向上するのと並行して、
携帯に対応したHTMLもバージョンアップを繰り返すためです。

このi-HTMLとi-XHTMLの違いは、多くはHTMLタグで指定できる属性やCSSの対応状況になりますが、簡単に言ってしまえば、i-XHTMLのほうがより豊かな表現が可能になっていると解釈しても間違いではないでしょう。


さて、携帯サイトを作成する際のポイントについてふれますが、
多くの方が勘違いされているのは、

ドコモの機種が割と新しい機種、つまりXHTMLに対応した機種であれば、
HTMLは自動的にXHTMLモードになるということ。


言い換えると、

i-XHTMLでしか対応していないCSSや書き方でも、
普通にHTML内に書けばそれに対応している機種なら表示できるということ。


結論から言ってしまえば、これはどちらも間違いです。

ドコモ携帯のブラウザをi-XHTMLモードで表示させるためには、
以下のような点に注意しなければなりません。

・DOCTYPE宣言が正しく行われていること。
・コンテンツのMIMEタイプが「application/xhtml+xml」であること。

2点目のMIMEタイプはHTMLのヘッダーで

<meta http-equiv="ContentType" Content="application/xhtml+xml">

が指定されていて、
かつサーバー側においても正しいHTTPヘッダが出力されている必要があります。

設定されていない場合は、.htaccessで
「AddType application/xhtml+xml .html」
のいう一文を追加します。

このような条件がそろって初めて、ドコモの機種はi-XHTMLモードでの表示が可能になります。
よりstrictな設定が必要だということですね。

ちなみに、ドコモ向け端末において、XHTMLモード(iモードXHTML)で表示させる場合、
拡張子は「xhtml」でなければならないという解説をしているところもありますが、それは間違いです。
Webサーバーにおいては拡張子はそれほど重要ではなく、
問題はその拡張子がどのようなコンテンツMIMEタイプであり、どんなHTTPヘッダが出力されるか
ということのほうが重要です。

上記例(htaccess)では、「.html」という拡張子においてはHTTPヘッダ
は「application/xhtml+xml」にせよ、という明示なので、この設定がなされていれば、Webサーバーは拡張子htmlで、「application/xhtml+xml」というHTTPヘッダを出力するようになるので、
ドコモの機種はXHTMLモードに切り替わります。
機種によっては「.xhtml」を読まない機種もありますので、私はこのような指定方法を推奨します。



また、このXHTMLモードに切り替えると以下のような表現が可能になります。

DIVタグでbackgroundプロパティを指定したい

というケース。

ドコモ機種では文字の後ろに背景色をつけたような表示をさせるには、
以下の2種類の方法があります。

・tableタグを用いる。(正確にはtdタグのbgcolor要素を使用する)
・DIVタグを用いる。(正確にはstyleでインライン指定する。)

ただ、tdタグでの背景色指定はi-HTMLバージョンが6.0以上、i-XHTMLで2.0以上という条件に対し、
DIVタグのstyle指定ならi-XHTML1.0以上という条件ですから、
DIVタグで指定する方法のほうが、より多くの端末を内包することになります。

従って、上記のようなケースではDIVタグを用いるほうが正解ですが、これも先ほど説明したようにブラウザがi-XHTMLモードになるようにHTML側で正しく設定していた場合の話です。

以下のサンプルを参考によく理解しておきましょう。

■DIVタグのSTYLE属性で背景を指定する例

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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" />
<title>テスト</title>
</head>
<body>

<div style="background-color:#808080;">aaa</div>

</body>
</html>






管理者にだけ表示を許可する


質問なんですが
いつも参考にさせていただいております。

質問なのですが、ドコモでCSSとSSIを使いたいと思っております。
SSIを使うために.htaccessにAddType php5-script htmlと
AddType application/xhtml+xml .htmlを記述すると、
片方しか適用されません。(順番を替えることでどちらか片方だけ認識)

そこで、.htaccessをAddType php5-script htmlだけにして
head内に<meta http-equiv="ContentType" Content="application/xhtml+xml">と記述しても
CSSが使えません。

SSIとCSSは両立できないのでしょうか?


head内に
<meta http-equiv="ContentType" Content="application/xhtml+xml">
を記述しても
しん | URL | 2009/11/01/Sun 13:30 [EDIT]
はじめまして。
かなり勉強になりました!
失礼ですが質問です!
私はキノコロウデコメというサイトを運営しているのですが、div要素で背景を区切りたくてやってはみたのですがうまく表示されません。
こちらで紹介しているとおりにしてみようと思いましたがキノコロウデコメは拡張子がphpです。
phpでこの手法を取り入れられないでしょうか?
キノコロウデコメはhttp://kinodeco.pupu.jp/です。
よろしくお願いします!
てつや | URL | 2009/04/24/Fri 17:02 [EDIT]
ありがとうございました
shiba様

迅速かつ丁寧な回答ありがとうございました。
本当に助かりました。

おっしゃる通り、PCブラウザのことは考えずに、このまま
製作していこうと思います。

今後も携帯サイトの情報をご提供頂けることを楽しみにしています。




take | URL | 2008/11/24/Mon 09:38 [EDIT]
Re : .htaccessファイルについて
takeさんこんばんわ。

携帯用にhtaccessを指定すると、拡張子HTMLに対し、
XHTMLのコンテンツMIMEタイプを出力するようになるため、
PCブラウザでは、閲覧できない場合があります。

サーバーにもよりますが、手元の環境で確認したところ、
IEではダウンロード状態(ただし、HTMLファイルを直アドレスで指定すると閲覧できる)、Firefoxではエラーとなるようです。

ただ、もちろんこれはPCブラウザに限ったことになりますので、
市場にある3Gに対応した携帯端末であればキャリアに関係なくおよそ閲覧できます。

クローラーに対してですが、決して今回のコンテンツMIMEタイプが
携帯に限ったようなイレギュラーな指定方法ではないので、
主要なクローラーは対応しているはずです。
このような指定方法をしている携帯サイトで
特殊な設定(IP、UA制限など)をしていない限り、
クローラーがはじかれたという話は聞いたことがありません。

実は今回指定するコンテンツMIMEタイプは、XHTMLにおいて、そのようなMIMEタイプを出力するようW3Cで推奨されているものです。
しかし、現在多くのPCブラウザが完全に対応していません。
ですから、PCブラウザをそれほど意識しなくてもよいのではないでしょうか。

また、Googleなどのクローラーにインデックスされるか不安がられる方も
おられますが、あくまで携帯サイトが存在して、それを容易に検索するために
検索エンジンが存在しているわけですから、何でもかんでも検索エンジンのいいなりになる必要はなく、むしろ携帯サイトを含むWEBサイトの記述方法に対し、
検索エンジン側がそれらの仕様やお国事情(ローカライズ)に併せてカスタマイズしていくべきですから、何も難しく考えることなく、携帯サイトを作ればよいと思います。
shiba | URL | 2008/11/23/Sun 01:42 [EDIT]
.htaccessファイルについて
とても参考になり、助かっています。ありがとうございます。

質問よろしいでしょうか

>>設定されていない場合は、.htaccessで
>>「AddType application/xhtml+xml .html」
>>のいう一文を追加します。

このおかげで、確かにドコモ携帯でもスタイルが適用されるように
なったのですが、通常のPC用ブラウザからは閲覧できないように
なってしまいました。

それはそれで構わないのですが、クローラーからも読み込まれない
ということはないでしょうか?


take | URL | 2008/11/22/Sat 14:55 [EDIT]
背景の色が変わりません。。。
拡張子 .html で、上記記述をしてdocomo携帯SO705・D902で確認したのですが背景の色が変わりませんでした。
拡張子を .xhtml にすれば変わるのですが、 .html のまま変えることはできないのでしょうか?? 
adire | URL | 2008/11/11/Tue 12:02 [EDIT]
勉強になりました。
勉強になりました。
ありがとうございます。
テクノロジー | URL | 2008/08/15/Fri 08:51 [EDIT]
Re : 教えて下さい。
shibaです。

CGIなどのプログラムはHTMLとは違いますから、
ちゃんとHTTPヘッダーを出力してやらないといけません。

例えば、PHPなら
header("Content-Type: application/xhtml+xml; charset=Shift_JIS");

という一文を追加しなければ正常動作しません。
同じことがCGIでもできるはずですので、調べてみてはいかがでしょうか。
shiba | URL | 2008/08/01/Fri 22:59 [EDIT]
教えて下さい。
今現在i-mode対応HPを作成しているのですが、どうしても文字の背景の色を(下記)変更したいのですが、上手く行きません。
下記に掲載してあるソースをコピペしてサーバーへUPし、ドコモの携帯(N701i)にて確認すると文字の背景色が表示されません。PCで見ると変更されているのですが、何が原因か分かりません。
おわかりでしたら、教えて下さい。
又、必要な情報がありましたらお知らせ致します。

追加
色々試して見た所、「***.html」のファイルだと変更されるのですが、
CGIにて出力「***.cgi」の場合だと変更されません。

何か良い方法を教えて下さい。
ManTan | URL | 2008/05/12/Mon 10:05 [EDIT]
修正させてもらいます。
>>管理人さんの書かれているもの
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.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" />
<title>テスト</title>
</head>
<body>

<div style="background-color:#808080;">aaa</div>

</body>
</html>

これだとモバイルサイトとして検索エンジンに登録するのには、どうしたらいいの??と、後々苦労されるでしょう…。(特にモバイルサイトとして検索エンジンインデックスされているサイトがまだまったくないかた。)

ですので赤文字部分修正され以下のようになります↓

<!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" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS" />
<title>テスト</title>
</head>
<body>

<div style="background-color:#808080;">aaa</div>

</body>
</html>

なぜ赤文字部分の修正が必要なのか?

①元のDOCTYPE宣言、DTD XHTML 1.0 Transitionalだとファイルサイズがよほど小さくないかぎり、大手検索エンジンにPCサイトとして扱われます。
また、元のDOCTYPE宣言、DTD XHTML 1.0 Transitionalはモバイルプロファイルではありません。(修正には例でopenwaveを記述しました。)

②lang="ja"は現在XHTMLのルート、HTMLの要素に書く必要はありません。

③もっとも重要な部分です↓
<?xml version="1.0" encoding="Shift_JIS"?>
いわゆるXML宣言ですが、省略可能なうちは省略しておくべきです。
これを書いていることによって、携帯からyahooモバイルで採用されているPC→携帯変換ブラウザによって表示することができなくなります。
携帯からPCサイトを検索しようとする人は結構います。
解決法がわからず、携帯サイトがPCサイトとしてインデックスされている場合にも重要です。
<?xml version="1.0" encoding="Shift_JIS"?>を記述しなくても閲覧できます。

省略不可の時が来れば記述するようにすればよいでしょう。
通行人 | URL | 2008/02/23/Sat 21:06 [EDIT]
i-mode HTML Simulator IIでは以下でも背景が付きますが
これはSimulatorの間違いなのでしょうか?


<?xml version="1.0" encoding="Shift_JIS"?>
<html>
<head>
</head>
<body>

<div style="background-color:#808080;">aaa</div>

</body>
</html>
| URL | 2007/10/26/Fri 03:57 [EDIT]




Copyright © 携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-. all rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。