ブラウザのバージョンを判別する方法では手間が掛かりすぎる
バージョンで判別すると処理が煩雑で面倒
閲覧者が利用しているブラウザの種類やバージョンを判別して、「IE9以降だった場合」・「IE8以前だった場合」……のように分岐させる方法もよく使われますが、とても面倒です。
最も面倒な点は、分岐処理を書くことではなく、例えば「IE7では何の機能が使えて何の機能が使えないのか」といった対応状況を自力で把握しておく必要がある点ではないでしょうか。IEだけならまだしも、Firefox、Chrome、Safari、Operaなど、代表的なブラウザの各バージョンも含めれば、対応状況を調べるだけでも大変で、すべてを網羅するのは非現実的です。
「その機能が使えるのかどうか?」を基準に条件分岐できると便利
機能で判別すれば処理がシンプルで明確
そのようなスクリプトを使えば、「○○機能が使える場合」or「○○機能が使えない場合」のような分かりやすい条件分岐で、HTMLやCSS・JavaScriptが書けるようになります。
Modernizr公式サイト
HTML・CSS・JavaScriptの各種機能のうち、自身がウェブ上で使いたい機能にチェックを入れるだけで、「その機能の有無を判別してくれるスクリプト」がダウンロードできます。全機能を選択しても20KB程度しかない小さなスクリプトです。
条件分岐が2つで済むので、クロスブラウザ対応が楽になる
HTML5で追加された「placeholder」属性は、古いブラウザ(下側)では表示できない
従来なら、「閲覧者のブラウザのバージョンを元にして条件分岐する」か、もしくは「使えないなら使えないで仕方がない」と諦めるくらいしか方法がありませんでした。
しかし、「Modernizr」スクリプトを使うと、
- placeholderに対応しているブラウザなら、placeholderを使う
- placeholderに対応していないブラウザなら、別途注釈を表示させる
……といった条件分岐が、簡単に実現できるようになります。
このように、「使える場合」と「使えない場合」のたった2つの条件分岐だけで済む点がとても便利です。HTML・CSS・JavaScriptのたくさんの機能について、「それが使えるのかどうか?」を基準に条件分岐できるため、「IE8以下の場合」や「IE9以上の場合」など、ブラウザのバージョンで判別する必要がなくなります。クロスブラウザ対応が、かなり楽になるでしょう。
今回は、この「Modernizr」を使って、「使いたい機能に対応しているかどうか」を基準にして条件分岐し、楽に「古いブラウザ」への対処もしつつ、新機能を安心して使えるようにする方法をご紹介致します。
それでは、次のページから「Modernizr」の設置方法と使い方を見ていきましょう。