リンク元 manakaa.com/tips.html
このページにほとんどcssは当ててません(めんどくさいから)Window幅が広い方は狭くしてみると見やすいです。
Modernizr/モダナイザーとは?
まずはじめにモダナイザーは、グレンダイザーとは違います(ザーしかあってない)。という事はJavascriptのライブラリの1つです。サイトを見に来たユーザーのブラウザがどんなもんかチェックしてくれます。例えばcss3のborder-radius(角丸)は反映されるのか?それとも古いブラウザなので反映されないのか?などです。
どこが便利なの?
とにかく便利です!(答えになってません)。例えば四角をcss3のプロパティborder-radiusで正円を作ったとします。新しいブラウザでは正円が表示されますが、古いブラウザではプロパティが効かず四角が表示されます。今まではその対処として、例えばie7とかie8用のcssを読み込ませて正円の画像を表示させたりしてきました。なので、css3のborder-radiusを使う場合、あのブラウザは反映するの?しないの?をチェックしてきました。(面倒です)
Modernizrは、そのチェックを自動でやってくるるんです!(ありがとう)。例えば、見ているブラウザがborder-radiusが効かない場合、モダナイザーがhtmlタグに.no-borderradiusというcssのクラスをつけてくれます。ということは、あらかじめ.no-borderradiusにbackground:url(sample.png) といった風に指定しておけば、border-radiusが効かないブラウザに対してはsample.pngが表示される事になるのです。
だったらborder-radiusなんて使わず、はじめから手堅く画像にしたらいいのでは?
それも一理あります。画像に統一してしまえば、border-radiusの指定をする手間が省けますからね。でもそういう風に古い手法だけに頼っていると時代に取り残されてしまいます。古くからのものを大事に継承していく伝統芸能なら古い手法にこだわらないといけませんが、ウェブの世界は常に進化しているので、それでは困ります。でも、あえて私は古き良きテーブルレイアウトとGIFアニメにこだわっています!という方は、それはそれで頑張って下さい。(ある意味応援します)
Modernizrをダウンロードしてみよう。
modernizr無料ダウンロード
- Download Modernizer[DEVELOPMENT]をクリック
- チェックして欲しい項目が表示されます。今回はExtraのhtml5shiv v3.7.1 w/ printshiv以外全部にチェック「√」を入れます。
- [GENERATE]をクリックすると内容が表示されます。改行がされているので「Don't Minify Source」のチェック「√」を外します。もう一度[GENERATE]をクリックしてください。改行がクリアされました。改行が無いぶんだけ気持ち少し軽くなったかな。(気持ちは大事)
- [DOWNLOAD]をクリックしてダウンロード完了です。なんとか.jsがダウンロードされます。
使ってみよう。
border-radiusでやってみます。
- なんか適当に作ったhtmlファイルと先ほどのモダナイザー.jsと適当に画像を用意します。
- それらは同じ階層にして下さい。新しくフォルダを作り、そこに3つ入れておくといいかも。
- モダナイザー.jshはhtmlファイルのheadにscriptタグでリンクしておきます。
まる。
上記の正円はcssのborder-radiusで実装されています。(モダンブラウザで見た場合)。次にie8で見てみましょう(ブラウザのバージョンを下げるには、F12の開発者ツールで!ツールからもいけます。)htmlタグを見るといろんなcssプロパティが追加されていますよね。モダナイザーが自動でやってくれました。そこにno-borderradiusというのがあると思います。という事で以下のcssをhtmlファイルに書いてあげましょう。
.no-borderradius .en {background:url(old.png) no-repeat 0 0;}
これで、border-radiusが効かないブラウザに対して、下記にある「あなたは時代遅れ」と書かれた屈辱的(?)画像が表示されます。ieのドキュメントモードを8とか10とかに切り替えてみてください。変わるでしょ?
以上です。お疲れさまでした。
(参考)こちらのサイト分かりやすく説明してあります。