HTML - Modernizr



Modernizr 是一個小型 JavaScript 庫,用於檢測使用者瀏覽器中是否存在特定 Web 技術的功能。它提供了一種簡單的方法來檢測任何新功能,以便我們可以根據瀏覽器的功能採取相應的措施。例如,如果瀏覽器不支援影片功能,則可以顯示一條簡單的訊息。我們還可以根據功能可用性建立 CSS 規則,如果瀏覽器不支援新功能,這些規則將自動應用於網頁。

在開始使用 Modernizr 之前,我們需要在 HTML 頁面標題中包含其 JavaScript 庫,如下所示:

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

示例

以下是處理支援和不支援功能的簡單語法:

<!-- In your CSS: -->
.no-audio #music {
   display: none; <!-- to not show Audio options -->
}
.audio #music button {
  <!-- Style the Play and Pause buttons nicely -->
}

<!-- In your HTML: -->
<div id="music">
   <audio>
      <source src="audio.ogg" />
      <source src="audio.mp3" />
   </audio>
   
   <button id="play">Play</button>
   <button id="pause">Pause</button>
</div>

值得注意的是,對於瀏覽器不支援的功能,您需要在每個功能/屬性前新增“no-”字首。

以下程式碼片段可以新增到透過 JavaScript 檢測特定功能:

if (Modernizr.audio) {
   <!-- properties for browsers that
   support audio -->
}

else{
   <!-- properties for browsers that
   does not support audio -->
}

Modernizr 檢測到的功能

以下是 Modernizr 可以檢測到的功能列表:

功能 CSS 屬性 JavaScript 檢查
@font-face .fontface Modernizr.fontface
Canvas .canvas Modernizr.canvas
Canvas 文字 .canvastext Modernizr.canvastext
HTML 音訊 .audio Modernizr.audio
HTML 音訊格式 NA Modernizr.audio[format]
HTML 影片 .video Modernizr.video
HTML 影片格式 NA Modernizr.video[format]
rgba() .rgba Modernizr.rgba
hsla() .hsla Modernizr.hsla
border-image .borderimage Modernizr.borderimage
border-radius .borderradius Modernizr.borderradius
box-shadow .boxshadow Modernizr.boxshadow
多重背景 .multiplebgs Modernizr.multiplebgs
opacity .opacity Modernizr.opacity
CSS 動畫 .cssanimations Modernizr.cssanimations
CSS 列 .csscolumns Modernizr.csscolumns
CSS 漸變 .cssgradients Modernizr.cssgradients
CSS 反射 .cssreflections Modernizr.cssreflections
CSS 2D 變換 .csstransforms Modernizr.csstransforms
CSS 3D 變換 .csstransforms3d Modernizr.csstransforms3d
CSS 過渡 .csstransitions Modernizr.csstransitions
地理位置 API .geolocation Modernizr.geolocation
輸入型別 NA Modernizr.inputtypes[type]
輸入屬性 NA Modernizr.input[attribute]
localStorage .localstorage Modernizr.localstorage
sessionStorage .sessionstorage Modernizr.sessionstorage
Web Workers .webworkers Modernizr.webworkers
applicationCache .applicationcache Modernizr.applicationcache
SVG .svg Modernizr.svg
SVG 剪輯路徑 .svgclippaths Modernizr.svgclippaths
SMIL .smil Modernizr.smil
Web SQL 資料庫 .websqldatabase Modernizr.websqldatabase
IndexedDB .indexeddb Modernizr.indexeddb
Web 套接字 .websockets Modernizr.websockets
Hashchange 事件 .hashchange Modernizr.hashchange
歷史管理 .historymanagement Modernizr.historymanagement
拖放 .draganddrop Modernizr.draganddrop
跨視窗訊息傳遞 .crosswindowmessaging Modernizr.crosswindowmessaging
addTest() 外掛 API NA Modernizr.addTest(str,fn)
廣告