私はModernizrが頭にあるプロジェクトに飛び込み続けますが、それは(少なくとも機能検出のために)使用されていません。今、私はModernizrが大好きです。それを必要とするプロジェクトの機能検出とフォールバックに頻繁に使用しています。ただし、私がこれまでに参加した最後の3つのプロジェクトは、機能検出クラスが呼び出されることなく、頭の中で行われています。これらのプロジェクトはバニラJavaScriptを使用しています および/またはjQueryポリフィルをまったく必要としません。1 つまり、機能検出を使用していない場合 そしてjQueryライブラリをロードする必要は本当にありません2、Modernizrは、追加のHTTPリクエストとロードするリソースを作成する以外に、実際に何かをしていますか?
私はjQuery/javascriptを十分に使用していないため、内部で何かに影響を与えているかどうかを理解できません。
編集
1 & 2 — Modernizrはjavascriptであり、jQueryライブラリを必要としません(少なくとも、これらのケースでは、なぜjQueryライブラリも読み込まれているのか不思議に思います)。
Modernizr.minのみ#-shiv-cssclasses-load
は7.57 KBですが、html5shiv.minはわずか3 KBです。
一般的に、Modernizrは3つのことを行います。
これらの機能をまったく使用しない場合、Modernizrを含めても意味がありません。 html5shiv にのみ使用する場合は、数バイトを節約するために代わりにそれを含めることができますが、関連するサイズの違いはまったくありません。
とはいえ、使用していないModernizrビルドに機能検出を含めないでください。それは無駄です。
Modernizrには、自分で定義したり、別のライブラリを含めたりする手間を省くシムも含まれています。
Modernizrの主な目的は、クラスを介した検出を使用することです。だからあなたはこのようなことをすることができます:
例、クライアントがフラッシュをサポートしているかどうかに応じて動作を変更する場合:
.flash #flashdiv
{
display:block;
}
.no-flash #flashdiv
{
display:none;
}
これは、さまざまなクライアントブラウザーの機能を動的に処理するのに役立ちます。
また、Modernizrを使用してHTML5機能を検出し、フォールバック(ポリフィル)を提供できます。
例えば:
<script>
if (Modernizr.canvas) {
alert("This browser supports HTML5 canvas!"); //you can load js here. or use yepnope)
}
</script>