| 目次 |
|---|
|
・モバイル環境の問題 ・スマートフォンに適したHTML5 ・Media Queries |
なぜ今、HTML5なのでしょう?
PCなどでWEBサーフィンするだけならば不完全ではありますが、XHTMLまでの仕様である意味充分です。
しかし、ことモバイル環境、特にスマートフォンを考慮した場合、XHTMLまでの仕様ではうまくいかない場合があります。
帯域の大きさや回線速度、表示領域の大きさなど、これまでのPC利用を目的に作られてきた仕様では重すぎます。
そのため、今ではガラパゴス携帯とも揶揄される日本国内のフィーチャーフォンでは、キャリアなどが独自のHTML仕様を採用しています。
それにより、ページ制作やアプリ制作をキャリア毎、場合に依っては機種毎に対応しなければなりません。
動作検証するために実機を用意する必要がありました。
海外でも、Symbian OSやBlackBerryなど独自OSを使っているものが多く、HTML事情は同様のものがありました。
(Symbian OSやBlackBerryの中にもスマートフォンは存在します。)
しかし、2007年のApple社からのiPhoneの発表、続いてGoogle社からのAndroidの発表により、スマートフォンが急激に普及しはじめます。
ios(iPhoneのOS)では、WEBブラウザとして「Safari」を標準ブラウザとして採用しています。
同じくAndroid OSでは、「Chrome」を標準ブラウザとして採用しています。
これら、PCと同じブラウザをスマートフォン上でも利用でき、フルブラウジングが出来るようになりました。
それでも、帯域の大きさや回線速度、表示領域の大きさなどの問題は残ります。
多くのページは、PC用に制作されているため、スマートフォンでは拡大しないと見れません。
また、デザイン性やインターラクティブ性の高いページも増えて、Adobe FlashやJavaを用いるページも増えてきました。
しかし、Adobe FlashやJavaはページ本体以外に動作するファイルのダウンロードを必要とします。
ブロードバンドが当たり前になったPCと異なり、スマートフォンを含むモバイル環境ではできることならばページ(画像等を含む)内だけで完結できるのが望ましいと言えます。
HTML5は、まだ策定途中ですが、これらモバイル環境の問題に応える形で進んでします。
また主流になりつつあるスマートフォンが基本的にHTML5に対応することで、HTMLの標準化も進みます。
これまでのようにキャリアや機種を検証する必要がなくなり、開発コスト...そして普及へと繋がります。
スマートフォンが台頭してきている今だからこそ、HTML5が必要とされているのです。
以下のHTML5の機能が、モバイル環境 特にスマートフォンに適していると言えます。
Media Queries(メディアクエリ)とは、特定のメディア(印刷用とかプロジェクタ用、TV用など)に対してだけスタイルを適用する方法です。
Media Queries自体は、CSS2から存在し、下記のメディアタイプに対応していました。
上記の「handheld」は、携帯電話(フィーチャーフォン)を主としています。
iPhoneやiPad、Androidなどスマートフォンのメディアタイプとしては、「screen」として扱われます。
しかしスマートフォン(特にAndroid系)は機種により、画面サイズや解像度が異なります。
また、同じスマートフォンでも縦表示と横表示で表示幅が異なってきます。
CSS3のMedia Queriesは、表示媒体のサイズやアスペクト比、カラー表示の可否などメディアタイプだけでは表現できない場合にも対応出来るようになりました。
以下は、「min-device-width」「max-device-width」などを用いて、スマートフォンの画面に対応する方法です。
スマートフォン
@media only screen
and (min-device-width : 320px)
and (max-device-width : 480px) {
/* ... */
}
スマートフォン(縦長)
@media only screen
and (max-width : 320px) {
/* ... */
}
スマートフォン(横長)
@media only screen
and (min-width : 321px) {
/* ... */
}
iPad
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px) {
/* ... */
}
iPad(縦長)
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
/* ... */
}
iPad(横長)
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : landscape) {
/* ... */
}