結局のところ、HTML5 仕様はまだ定義されたばかりの仕様であり、特に IE8 以下のブラウザでは、新しいタグや新しい属性をサポートできないブラウザがいくつかあります。以下は、HTML5 の新しいタグを扱うためのブラウザー互換バージョンの紹介です。結局のところ、HTML5 の仕様はまだ定義されたばかりなので、一部のブラウザーではサポートされていません。新しいタグと新しい属性、特に IE8 以下のブラウザです。以下では、ページ内で HTML5 の新しいタグを使用するためのいくつかの実用的な方法を紹介します。その目的は、HTML5 の新しいタグが低レベルのブラウザーで限定的にサポートされ、ページ全体の機能に影響を及ぼさないようにすることです。
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]) }
このように、JavaScript コードと CSS コードの 2 つの単純な部分により、IE8 以下のブラウザで HTML5 の新しいタグをサポートできます。もちろん、成熟したフレームワークを直接使用するのが最善の方法です。現在、この考え方に基づいたフレームワークが複数あり、最も一般的に使用されているフレームワークは html5shim フレームワークへの参照を追加するだけです。ページの先頭部分:
article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block} mark{background:#FF0;color:#000}
HTML5 の新機能の下位互換性
広義の HTML5 には、HTML5、CSS3、および新しい API が含まれます。新しい機能にはブラウザの互換性の問題がある可能性があるため、新しい機能を使用する場合はブラウザがこの機能をサポートしているかどうかを確認することが非常に必要です。ブラウザが新機能をサポートしていない場合でも、適切な下位互換性処理を行うことができます。現在、新機能のサポートを検出する統一された方法はありません。一部の新機能には識別可能な対応する API があり、一部の新機能は特定の技術を介してのみ識別できます。幸いなことに、海外の熱心なエンジニアが新しい機能を検出するためのフレームワークを複数開発しています。その中でも、Modernizr の方が検出精度と使用率が高くなります。 Modernizr フレームワークの原理は、ブラウザが新しい機能をサポートしているかどうかを自動的に検出し、対応するクラスを タグに追加することです。ブラウザーが機能をサポートしている場合は、その機能名を含む名前のクラスが追加されます。それ以外の場合は、「no-」接頭辞と機能名を付けた名前のクラスが追加されます。同時に、modernizr という名前のオブジェクトも生成されます。このオブジェクトの各機能を表す属性値を判断することで、現在のブラウザがこの新しい機能をサポートしているかどうかを知ることができます。 Modernizr フレームワークには、HTML5shim フレームワークの機能も含まれており、これによりブラウザ IE8 以下で新しいタグをサポートできるようになります。 Modernizr の使用方法は非常に簡単です。まず、ヘッド部分にフレームワークの JavaScript ファイルを導入します:
<!--[if lt IE 9]> <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script> <![endif]-->
次に、HTML タグに no-js という名前のクラスを追加します:
<script src="js/modernizr.min.js"></script>
閲覧する場合 ブラウザでJavaScriptが無効になっていない場合、ブラウザがページを読み込んだ後、HTMLタグ上のクラスが動的に置き換えられ、追加されます。ロード後の HTML タグは次のようになります。
<html class="no-js">
CSS コードでは、これらのクラスを使用して下位互換性コードを追加できます。 複数の背景画像を使用する例を次に示します。
<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">
このフレームワークに興味のある読者は、Modernizr の公式 Web サイトを参照して、より詳細な例と使用方法を確認できます。
オーディオとビデオの互換性
オーディオとビデオはページ内で一般的に使用されるマルチメディアタグですが、ブラウザーの互換性は非常にわかりにくいため、ここでは別のトピックとして扱います。オーディオとビデオは、ブラウザーでネイティブにサポートされている比較的初期の機能であるため、特にモバイル プラットフォームでは、オーディオとビデオの再生はサードパーティのプラグインに限定されなくなりました。オーディオとビデオは重要な部分であり、各ブラウザ メーカーは最大の部分を獲得したいと考えています。これは、ブラウザがサポートするオーディオとビデオの形式の差別化にもつながります。ブラウザがサポートするオーディオ形式のリストは次のとおりです: ブラウザ バージョン サポートされている形式 Internet Explorer 9.0+ MP 3、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 大约有80%的浏览器支持HTML5的 视频也有和音频类似的状况,如下是浏览器支持视频的格式列表: 浏览器 版本 支持格式 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两种格式的视频。兼容代码如下: 以上がHTML5 の新しいタグを使用してブラウザーの互換性の問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。<audio controls>
<source src="elvis.mp3" type='audio/mpeg; codecs="mp3"'>
<source src="elvis.oga" type='audio/ogg; codecs="vorbis"'>
<!-- 向后兼容代码:如,显示提示信息、提供下载链接使用flash播放器等 -->
浏览器不支持<code>audio</code>标签
</audio>
<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>