JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

Modernizrで検出できる機能一覧|CSSクラスとJavaScript判定方法まとめ

Modernizrは、ユーザーのブラウザがHTML5やCSS3の各種機能に対応しているかどうかを自動的に検出するための軽量JavaScriptライブラリです。検出結果は、<html>要素に付与されるCSSクラスとして、またはModernizrオブジェクトのプロパティとして利用できます。これにより、ブラウザごとの機能差を意識したフォールバック処理や条件分岐を簡単に実装できます。

Modernizrが検出可能な機能の一覧

以下の表は、Modernizrが検出できる主な機能をまとめたものです。各機能について、対応するCSSクラス名と、JavaScriptで判定する際の記述方法を確認できます。

機能CSSクラス名JavaScriptでの判定
@font-face(Webフォント).fontfaceModernizr.fontface
Canvas.canvasModernizr.canvas
Canvasテキスト描画.canvastextModernizr.canvastext
HTML5オーディオ.audioModernizr.audio
HTML5オーディオ形式なしModernizr.audio[format]
HTML5ビデオ.videoModernizr.video
HTML5ビデオ形式なしModernizr.video[format]
rgba()カラー.rgbaModernizr.rgba
hsla()カラー.hslaModernizr.hsla
border-image.borderimageModernizr.borderimage
border-radius.borderradiusModernizr.borderradius
box-shadow.boxshadowModernizr.boxshadow
複数背景画像.multiplebgsModernizr.multiplebgs
透明度.opacityModernizr.opacity
CSSアニメーション.cssanimationsModernizr.cssanimations
CSSカラム(段組み).csscolumnsModernizr.csscolumns
CSSグラデーション.cssgradientsModernizr.cssgradients
CSS反射効果.cssreflectionsModernizr.cssreflections
CSS 2D変換.csstransformsModernizr.csstransforms
CSS 3D変換.csstransforms3dModernizr.csstransforms3d
CSSトランジション.csstransitionsModernizr.csstransitions
Geolocation API(位置情報).geolocationModernizr.geolocation
入力タイプなしModernizr.inputtypes[type]
入力属性なしModernizr.input[attribute]
localStorage.localstorageModernizr.localstorage
sessionStorage.sessionstorageModernizr.sessionstorage
Web Workers.webworkersModernizr.webworkers
applicationCache.applicationcacheModernizr.applicationcache
SVG.svgModernizr.svg
SVGクリップパス.svgclippathsModernizr.svgclippaths
SMIL.smilModernizr.smil
Web SQL Database.websqldatabaseModernizr.websqldatabase
IndexedDB.indexeddbModernizr.indexeddb
WebSocket.websocketsModernizr.websockets
hashchangeイベント.hashchangeModernizr.hashchange
履歴管理.historymanagementModernizr.historymanagement
ドラッグ&ドロップ.draganddropModernizr.draganddrop
ウィンドウ間メッセージング.crosswindowmessagingModernizr.crosswindowmessaging
addTest()プラグインAPIなしModernizr.addTest(str, fn)

検出結果の活用方法

Modernizrはページ読み込み時に各機能の対応状況をチェックし、結果に応じて<html>要素にクラスを付与します。例えば、Canvasに対応しているブラウザではcanvasクラスが、非対応の場合はno-canvasクラスが付きます。これにより、CSS側では次のようにスタイルを切り替えられます。

.borderradius .box {
  border-radius: 10px;
}
.no-borderradius .box {
  /* 角丸非対応ブラウザ向けの代替スタイル */
}

JavaScript側でも、if (Modernizr.canvas) { ... }のようなシンプルな条件分岐で、機能の有無に応じた処理を実装できます。対応していない機能については、ポリフィルを読み込むか、代替手段を提供することで、あらゆる環境で快適なユーザー体験を実現できます。

  1. CSSのbackground-image(背景画像)が表示されないときの対処法4選|HTML/CSS

    CSSで背景画像を扱うのは意外と厄介です。コード上で正しく設定したつもりでも、別の要因によってbackground-imageがページに表示されないことがあるからです。 そこでこの記事では、HTMLとCSSを使って「背景画像が表示されない」問題を解決するための4つの方法を紹介します。 1. CSSファイルがHTMLファイルに正しくリンクされているか確認する CSSのスタイルをWebサイトに読み込ませるには、HTMLファイル内に<link>タグを追加する必要があります。このタグは<head></head>タグの中に配置し、次のような形になります。 <li

  2. CSSのoverflow-yプロパティとは?縦方向のはみ出し制御方法をサンプルコード付きで解説

    CSSの overflow-y プロパティを使うと、コンテンツが要素の上下(垂直方向)の境界からはみ出した場合に、その内容をどのように表示・処理するかを指定できます。横方向の表示を制御する overflow-x と組み合わせることで、ボックス内のスクロール動作を柔軟にカスタマイズ可能です。 以下は、overflow-y プロパティを実装するシンプルなHTMLとCSSのコード例です。 コード例 <!DOCTYPE html> <html>    <head>       <style>