MACH3

MACH3.laBlog

WEB屋の音速実験室

「Modernizr」 モダンなクロスブラウザCSSの為の支援スクリプト

HTML5/CSS3で新たに使える機能がブワッと増えたわけですが、
新機能に対応している環境というのはまだまだごくわずかです。
ということは、機能が使えるor使えない場合に処理を分けたりしなければいけないわけで。
「Modernizr」は、それを支援してくれるJavaScriptライブラリです。

Modernizr

Modernizr

Modernizr

「Modernizer」ではなく、「Modernizr」。
eが欠けている点に注意。Flickrみたいな感じ。

Modernizrがしてくれる事は、ただ一つの単純な処理です。
閲覧しているブラウザが、或る機能に対応しているかどうかをJavaScriptで判別し、
その結果をhtml要素のclassという形で教えてくれます。

HTML要素に沢山のクラスが

例えば、box-shadowに対応しているかどうかを知りたい場合。
Modernizrを読み込んだ上でhtml要素を調べると、
「boxshadow」または「no-boxshadow」というクラスがhtml要素に付加されています。
あとは子孫セレクタ等を使えば…この先は予想がつくかと思います。

簡単な使い方

スクリプトをダウンロードして読み込みます。

<script type="text/javascript" src="modernizr.js"></script>

boxhadowに対応している場合とそうでない場合のスタイルを書き分けます。

/* デフォルトのスタイル */  
#box{  
    width:220px;  
    height:100px;  
    padding:10px;  
    background-color:#eee;  
    border-right:2px solid #ccc;  
    border-bottom:2px solid #999;  
}
/* boxshadowが使える場合のスタイル */  
.boxshadow #box{  
    border:none;  
    -moz-box-shadow:#666 1px 1px 3px;  
    -webkit-box-shadow:#666 1px 1px 3px;  
    box-shadow:#666 1px 1px 3px;  
}

結果のイメージ

JavaScriptでの判別にも役立つ

JavaScriptで新要素の対応状況を調べるスクリプトは以前ご紹介しましたが、
cf) HTML5の新機能が使用可能かどうかを判別するJSコード一覧
Modernizrは一括して調べておいてくれるので、問い合わせればすぐに教えてくれます。

var bs = Modernizr.boxshadow;

boxShadowが使用可能であればtrueが格納されます。

CSSのプロパティに関わらずストレージ関係やSVG等々、
様々な要素に対応している模様です。
cf) Modernizr Documentation …これは便利!

非常にシンプルなライブラリですが、それだけに様々なシーンでの活用が期待できます。
HTML5への過渡期を戦うために、頼もしい戦力となるのではないでしょうか。

Share |

コメント (2件)

「Aptana Studio 3.0.8」を使ってみた感想 | DesignMemo

[...] まあ、今の過渡期が何時まで続くか、って話もあるだろうけど…。 ▽「Modernizr」 モダンなクロスブラウザCSSの為の支援スクリプト | Mach3.laBlog Modernizrがしてくれる事は、ただ一つの単純な処理です。 [...]

» html5boilerplateに見る最近のHTML・CSSプラクティス: エスキュービズム ラボ Blog

[...] Modernizrは、ブラウザがHTML5/CSS3の新機能に対応しているか否かを判別するjavascriptです。このスクリプトを置くと、htmlのトップ要素に新機能の対応結果を示すclassがページロード時に付与されます。CSSではその付与されたclassを利用して、新機能が使える場合とそうでない場合に分けてスタイルを書くことができます(参考サイト)。 [...]

コメントを投稿する

入力されたメールアドレスは公開されません。


*

「東北地方太平洋沖地震」義援金支援(Yahoo!基金)