首頁 web前端 H5教程 解決HTML5新標籤的瀏覽器相容性問題

解決HTML5新標籤的瀏覽器相容性問題

Apr 30, 2017 am 11:00 AM

HTML5規範畢竟是剛剛定義完成的規範,還有一些瀏覽器並不能支援其中的新標籤和新屬性,尤其是IE8及以下版本瀏覽器。以下為大家介紹處理HTML5新標籤的瀏覽器相容版問題,需要的朋友參考下

HTML5規範畢竟是剛剛定義完成的規範,還有一些瀏覽器並不能支援其中的新標籤和新屬性,尤其是IE8及以下版本瀏覽器。以下介紹一些在頁面中使用HTML5新標籤的實踐方法,目的是讓HTML5中的新標籤在低階瀏覽器中也得到有限的支持,不至於影響整個的頁面功能。

  • 讓瀏覽器辨識HTML5規格中的新標籤

##IE8瀏覽器中還沒有加入對HTML5新標籤的支持,所以在IE8中無法直接展現HTML5新標籤中的內容。慶幸的是IE8/IE7/IE6支援透過document.createElement方法產生的標籤,可以利用此特性讓這些瀏覽器支援HTML5新標籤,程式碼如下:

var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
var i= e.length;
while (i--){
    document.createElement(e[i])
}
登入後複製

瀏覽器支援新標籤後,還需要加入標籤預設的樣式:

article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}
mark{background:#FF0;color:#000}
登入後複製

這樣兩段簡單的JavaScript程式碼和CSS程式碼就可以讓IE8及以下版本瀏覽器支援HTML5中的新標籤。當然最好的方式是直接使用成熟的框架,目前有多個基於這一思想的框架,使用最多的是html5shim框架,html5shim的使用方法很簡單,在頁面的head部分添加框架的引用即可:

<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
登入後複製

  • #HTML5中新功能的向後相容

廣義的HTML5,是包含了HTML5、CSS3以及新的API。因為新特性或多或少會有瀏覽器的兼容問題,所以在使用新特性時檢測瀏覽器是否支援此特性是非常必要的。當瀏覽器不支援新功能時,可以做合適的向後相容處理。目前,並沒有一個統一的方法檢測新特性的支持,有些新特性有對應的API可以識別,有些新特性則只能透過一些技巧來識別。好在國外有熱心的工程師們開發了多個檢測新特性的框架,其中檢測準確率和使用率較高的是Modernizr。

Modernizr框架的原理是自動偵測瀏覽器是否支援新特性,並在標籤上新增對應的類別。如果瀏覽器支援某個特性,則會新增一個以特性名稱命名的類,反之,則會加上一個以「no-」為前綴加上特性名稱命名的類別。同時也會產生一個名為modernizr的對象,透過判斷此物件上的代表各特性的屬性值,可以知道目前瀏覽器是否支援此新特性。 Modernizr框架同時也包含了html5shim框架的功能,也就是可以讓IE8及以下瀏覽器支援新標籤。

Modernizr的使用方法很簡單,首先在head部分引入框架的JavaScript檔案:

#

<script src="js/modernizr.min.js"></script>
登入後複製

其次在html標籤上新增一個名稱no-js的類別:

<html class="no-js">
登入後複製

如果瀏覽器沒有停用JavaScript,瀏覽器載入頁面後,html標籤上的類別會動態取代和新增。載入後,html標籤類似如下:

<html class="js canvas canvastext geolocation rgba hsla no-multiplebgs borderimage borderradius boxshadow opacity no-cssanimations csscolumns no-cssgradients no-cssreflections csstransforms no-csstransforms3d no-csstransitions  video audio cufon-active fontface cufon-ready">
登入後複製

在CSS程式碼中,可以透過使用這些類別來新增向後相容程式碼,如下是一個使用多背景圖的範例:

#nice {
    background: url(background-one.png) top left repeat-x;
}
.multiplebgs #nice {
    background: url(background-one.png) top left repeat-x,url(background-two.png) bottom left repeat-x;
}
登入後複製

對此框架感興趣的讀者,可以瀏覽Modernizr的官方網站,以獲得更多更詳細的範例和使用方式。

  • 音訊和視訊的相容

音訊和視訊是在頁面中常用的多媒體標籤,但瀏覽器相容則是比較混亂,所以這裡作為一個單獨的話題。音訊和視訊是比較早期得到瀏覽器的原生支援的特性,讓音訊和視訊的播放不再限制於第三方的插件,尤其是在行動平台中。音訊和視訊是一塊大蛋糕,各瀏覽器廠商都想分得最大的那一塊,這也導致瀏覽器支援音訊和視訊的格式出現的分化。瀏覽器的支援音訊格式的清單如下:

##Internet Explorer9.0+#

大约有80%的浏览器支持HTML5的

<audio controls>
    <source src="elvis.mp3" type=&#39;audio/mpeg; codecs="mp3"&#39;>
    <source src="elvis.oga" type=&#39;audio/ogg; codecs="vorbis"&#39;>
    <!-- 向后兼容代码:如,显示提示信息、提供下载链接使用flash播放器等 -->
    浏览器不支持<code>audio</code>标签
</audio>
登入後複製

视频也有和音频类似的状况,如下是浏览器支持视频的格式列表:

瀏覽器

版本

支援格式

##MP3, AAC

Chrome

6.0+

Ogg Vorbis, MP3, WAV(9.0+)## #
##Firefox

3.6+

Ogg Vorbis,WAV

#Safari

5.0+

MP3、AAC、WAV

歌劇

10.0+

Ogg Vorbis,WAV

浏览器

版本

支持格式

Internet Explorer

9.0+

MP4

Chrome

6.0+

MP4,WebM,Ogg

Firefox

3.6+

WebM,Ogg

Safari

5.0+

MP4

Opera

10.0+

WebM,Ogg

从浏览器支持的视频格式来看,最佳的方式是提供WebM和MP4两种格式的视频。兼容代码如下:

<video controls>    
    <source src=video.webm type=video/webm>    
    <source src=video.mp4 type=video/mp4>      
    <!—向后兼容代码: -->      
    <iframe width="480" height="360" src="http://www.youtube.com/embed/xzMUyqmaqcw?rel=0" frameborder="0" allowfullscreen></iframe>  
</video>
登入後複製

以上是解決HTML5新標籤的瀏覽器相容性問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1328
25
PHP教程
1273
29
C# 教程
1253
24
H5代碼:Web開發人員的最佳實踐 H5代碼:Web開發人員的最佳實踐 Apr 16, 2025 am 12:14 AM

H5代碼的最佳實踐包括:1.使用正確的DOCTYPE聲明和字符編碼;2.採用語義化標籤;3.減少HTTP請求;4.使用異步加載;5.優化圖像。這些實踐能提升網頁的效率、可維護性和用戶體驗。

H5:網絡標準和技術的發展 H5:網絡標準和技術的發展 Apr 15, 2025 am 12:12 AM

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5是HTML5的速記嗎?探索細節 H5是HTML5的速記嗎?探索細節 Apr 14, 2025 am 12:05 AM

H5不僅僅是HTML5的簡稱,它代表了一個更廣泛的現代網頁開發技術生態:1.H5包括HTML5、CSS3、JavaScript及相關API和技術;2.它提供更豐富、互動、流暢的用戶體驗,能在多設備上無縫運行;3.使用H5技術棧可以創建響應式網頁和復雜交互功能。

H5和HTML5:網絡開發中常用的術語 H5和HTML5:網絡開發中常用的術語 Apr 13, 2025 am 12:01 AM

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

了解H5代碼:HTML5的基本原理 了解H5代碼:HTML5的基本原理 Apr 17, 2025 am 12:08 AM

HTML5是構建現代網頁的關鍵技術,提供了許多新元素和功能。 1.HTML5引入了語義化元素如、、等,增強了網頁結構和SEO。 2.支持多媒體元素和,無需插件即可嵌入媒體。 3.表單增強了新輸入類型和驗證屬性,簡化了驗證過程。 4.提供了離線和本地存儲功能,提升了網頁性能和用戶體驗。

解構H5代碼:標籤,元素和屬性 解構H5代碼:標籤,元素和屬性 Apr 18, 2025 am 12:06 AM

HTML5代碼由標籤、元素和屬性組成:1.標籤定義內容類型,用尖括號包圍,如。 2.元素由開始標籤、內容和結束標籤組成,如內容。 3.屬性在開始標籤中定義鍵值對,增強功能,如。這些是構建網頁結構的基本單位。

H5:如何增強網絡上的用戶體驗 H5:如何增強網絡上的用戶體驗 Apr 19, 2025 am 12:08 AM

H5通過多媒體支持、離線存儲和性能優化提升網頁用戶體驗。 1)多媒體支持:H5的和元素簡化開發,提升用戶體驗。 2)離線存儲:WebStorage和IndexedDB允許離線使用,提升體驗。 3)性能優化:WebWorkers和元素優化性能,減少帶寬消耗。

H5代碼的基礎:密鑰元素及其目的 H5代碼的基礎:密鑰元素及其目的 Apr 23, 2025 am 12:09 AM

HTML5的關鍵元素包括、、、、、等,用於構建現代網頁。 1.定義頭部內容,2.用於導航鏈接,3.表示獨立文章內容,4.組織頁面內容,5.展示側邊欄內容,6.定義頁腳,這些元素增強了網頁的結構和功能性。

See all articles