PCモバイル(ガラケー)両用サイトの作り方
普通のパソコン対応のホームページ(PCページ)にモバイル(携帯電話)で訪れる人が増えてきました。携帯電話の性能が上がってきて、たいていのページは問題無く表示されますが、中にはとても見られないページもあります。PCモバイル両用ページの作り方について考えてみました。
携帯電話(フィーチャーフォン)で普通のPC用ページを見た場合
携帯電話(フィーチャーフォン)で普通のPC用ページを見ると、CSS(スタイルシート)が無効になるのが一般的です。その場合は記述した順番にページが表示されます。また、一般的には携帯電話ではJavascriptが無効になるので、Javascript(ジャバスクリプト)を使ったページでは思い通りの動作をしません。
これを逆手に取ってPCモバイル両用ページを作ることができます。PCモバイル両対応ページ(サイト)となるように変更してみましょう。
PCモバイル両用ページにするには
完全に フルブラウザ楽天 の携帯電話(スマートフォン)ならば、あまり問題はありませんが、普通の携帯電話(フィーチャーフォンとかガラケーという)ではスタイルシートとジャバスクリプトが使えないので、モバイルページで表示させたいものを先に書いていきます。これは元々SEOでも重要な事ですので、既に実行済の人も多いと思います。
まずは携帯電話でホームページを見てみましょう。不具合な点をひとつずつ、少しずつ解決していけばPCモバイル両用ページにすることができます。ホームページを携帯電話で見ることができない人は携帯電話シミュレーターを使えばパソコン上で見ることができます。(i-mode HTML Simulator II 等)
PCモバイル両用ページのデザイン
フレームの問題と表の問題は後述しますが、ページのデザインによってはうまくPCモバイル両用ページにすることができません。CSSを使って段組ページにして、コンテンツ(ページの内容)を先に記述するのが良いと私は思います。
CSSファイルをモバイルページ用にも使えるように書き換える
最近の携帯電話では、外部CSSファイルを読み込んで表示するものもあるようです。実際にFORMAのi-modeで私のホームページを見てみると、外部CSSを読み込んで表示されましたが、メイン部分に設定した margin が無効になり、サイドバーとメイン部分が重なって表示されていました。
そこでCSSファイルの一部に @media handheld{} を追加して、モバイルでもちゃんと表示できるようにしてみました。
@media handheld{ #side {width:160px;position:relative;top:5px;left:5px;border:1px solid #888;text-align:center;line-height:1.0} a:link {color:#00f} a:visited {color:#60c} a:focus {color:red} }
上記のように、#side の position:absolute を position:relative に書き換えました。そうすると、サイド部分はメインの後に配置されます。これでサイド部分がメイン部分に重なるのは防げました。
また、CSSの a:hover はモバイルでは適用されないのでモバイル用の、a:focus も記述してみました。 a:link と a:visited もこの順番に必要です。
PCモバイル両用ページでのフレームの問題
携帯電話はフレームページに対応していないので、普通は携帯電話では表示させることができません。しかし、工夫すれば表示させることも可能です。
次のようにフレーム未対応の携帯電話の為に、 noframes タグ内でメニューを表示させてやります。
<frameset cols="20%,*"> <frame src="menu.php"> <frame src="contents.htm"> <noframes> <a href="menu.htm">メニュー</a> </noframes> </frameset>
PCモバイル両用ページでのテーブルデザインの問題
表でデザインされたページでは、表(テーブル、TABLE)の中の画像と文章がうまく表示されないことがあります。自分で確認されるのが一番です。できるだけ表でデザインしない方が良いでしょう。
携帯電話だけで表示させる
PCモバイル両用ページの場合、携帯電話だけに表示させて、パソコンには表示させたくないことがあります。楽天アフィリエイトのモバイル専用広告がこれに相当します。
この場合は、スタイルシート(CSS)を使ってdisplay:noneとすれば、パソコンでは表示されずにスタイルシート無効の携帯電話に表示されます。でも、この手法はSEOの点でやめた方がよさそうです。
<div style="display:none"> <p>これはスタイルシート無効の携帯電話に表示されます。</p> </div>
PCだけで表示させる
逆に、携帯電話(フィーチャーフォン)に表示させずに、パソコンだけに表示させたい場合は、Javascript(ジャバスクリプト)で記述することです。
HTMLかXHTMLか
ページを記述する言語はHTMLでもXHTMLでも問題はありませんが、モバイル機器向けのXHTMLとして、「XHTML Basic 1.0」と「XHTML Mobile Profile 1.0」があります。元の言語はXHTML 1.0です。
XHTMLの文法に従っていない記述をしても、ある程度はブラウザ側で修正してくれてうまく表示できますので、あまり気にせずXHTML 1.0で記述しておいた方が良いかも知れません。
PHPかSSIか
後述の携帯電話(フィーチャーフォン)向けグーグルアドセンスを使うのであれば、PHPを使った方が良いでしょう。SSIで記述したページでもモバイル用のグーグルアドセンスが表示されましたので、どちらでも良いかも知れません。
携帯電話向けグーグルアドセンス
携帯電話向けグーグルアドセンスは普通PHPで記述します。(PHP、CGI/Perl、JSP、ASPのどれか)拡張子をphpにするか、拡張子がhtmlでもPHPが動作するようにhtaccessファイルに記述します。当然、PHPの使えるサーバーでないと携帯電話向けグーグルアドセンスは表示できません。
モバイル向けグーグルアドセンスは一つのページに一つしか付けることができませんので注意します。また、ダブルの広告はページの下部にしか付けられないので注意してください。
PHPのインクルード機能でグーグルアドセンスの外部ファイルを取り込むと便利です
PHPとはHTML文書中に記述されたスクリプトをサーバーのPHPが実行し、その結果を HTMLデーターとしてWebブラウザに渡すものです。
PHPファイル(拡張子は普通php)の中で同じフォルダ内にあるグーグルアドセンスの外部ファイル(mobile_adsense.inc)を呼び出すには次のようにします。
<?php include("mobile_adsense.inc"); ?>
インクルードするファイルの拡張子はincやhtmやhtmlやphpでも何でもかまいません。