★HTML Living Standard リファレンス

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

<source> …… リソースの選択肢をセットする
Internet Explorer
Microsoft Edge
Google Chrome
Safari
Firefox
Opera
広告



<source>タグは、リソースの選択肢をセットする際に使用します。
リソースとは、画像リソースやメディアリソース(動画・音声)です。

source要素は、親要素がpicture要素かメディア要素(video要素audio要素)かによって、
source要素に指定できる属性などが異なります。
picture要素とメディア要素(video要素audio要素)では、
リソース選択のアルゴリズムが異なるためです。

source要素の親要素がpicture要素の場合

picture要素内でsource要素を使用すると、
img要素の表示を環境に応じて切り替えるための複数の画像リソースのセットを指定できます。

親要素がpicture要素の場合、
source要素にはsrc属性は存在してはならず、srcset属性が存在する必要があります。
source要素のsrcset属性の値には、画像リソースのアドレス(URL)を指定します。
ここで指定した画像リソースは、環境に応じていずれかが利用される画像リソースのセットに追加されます。

media属性を指定する場合には、値には有効なメディアクエリを指定します。
メディアクエリの値が環境と一致しない場合、ユーザーエージェントは次のsource要素にスキップします。

■使用例

以下のサンプルは、メディアの画面幅に応じて利用する画像リソースを切り替えるように指定しています。
パソコンでご覧の場合には、ブラウザの横幅を変更してみてください。

HTMLソース

<picture>
 <source srcset="./sample/pear-mobile.jpg" media="(max-width: 720px)">
 <source srcset="./sample/pear-pc.jpg" media="(max-width: 1280px)">
 <img src="./sample/pear-desktop.jpg" alt="洋ナシはジューシーです。">
</picture>

↓↓↓

ブラウザ上の表示

洋ナシはジューシーです。

source要素の親要素がメディア要素の場合

source要素の親要素がメディア要素(video要素audio要素)の場合、
source要素を使用してメディア要素の代替となる複数のメディアリソースを指定できます。

親要素がメディア要素の場合、
source要素にはsrcset属性は存在してはならず、src属性が存在する必要があります。
source要素のsrc属性の値には、メディアリソースのアドレス(URL)を指定します。
ここで指定したメディアリソースは、環境に応じていずれかが利用されるメディアリソースのセットに追加されます。

尚、source要素のsrc属性やtype属性を動的に変更することで、再生内容を変更することは原則としてできません。
ドキュメントの解析後にsource要素を動的に変更するのは不必要に複雑なアプローチとのことです。

■使用例

以下のサンプルは、video要素で動画を表しています。
子要素のsource要素は、ブラウザに対して動画データの候補を提示しています。
ブラウザは、記述された順に再生可能なデータを利用します。

HTMLソース

<video>
 <source src="sample.mp4">
 <source src="sample.ogv">
 <source src="sample.webm">
 <p>動画を再生するには、video要素をサポートしたブラウザが必要です。</p>
</video>

source要素の終了タグについて

HTMLの仕様では、source要素には終了タグ</source>はありません。

親要素により指定できる属性が異なる

source要素でどの属性が指定できるかは、親要素がpicture要素か、
メディア要素(video要素audio要素)かによって異なります。

■属性

type属性
埋め込みリソースの種類を指定します。
src属性
リソースのアドレスを指定します。(親要素がvideo要素audio要素の場合)
srcset属性
高解像度ディスプレイ、小型モニターなど、さまざまな状況で使用する画像リソースの選択肢を指定します。(親要素がpicture要素の場合)
sizes属性
さまざまなページレイアウトにおける画像サイズを指定します。(親要素がpicture要素の場合)
media属性
対応メディアを指定します。(親要素がpicture要素の場合)
width属性
水平方向の寸法(横幅)を指定します。(親要素がpicture要素の場合)
height属性
垂直方向の寸法(高さ)を指定します。(親要素がpicture要素の場合)

codecsパラメータでエンコード方法を正確に指定する

source要素のtype属性を指定する場合には、埋め込みリソースの種類を有効なMIMEタイプの文字列で指定します。

type属性でメディアリソースの種類を指定すると、
ユーザーエージェントがこのメディアリソースを取得する前に、再生できるかどうかを判断できるようになります。
リソースのエンコード方法を正確に指定するには、type属性のなかでcodecsパラメータを同時に指定します。

■使用例

以下のサンプルは、source要素のtype属性でメディアリソースの種類とcodecsパラメータを指定した使用例です。
WHATWGのウェブサイトに掲載されているHTMLソースをそのまま転載したものであり、
それぞれのcodecsパラメータの詳細は不明です。

HTMLソース

<source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
<source src='video.mp4' type='video/mp4; codecs="avc1.58A01E, mp4a.40.2"'>
<source src='video.mp4' type='video/mp4; codecs="avc1.4D401E, mp4a.40.2"'>
<source src='video.mp4' type='video/mp4; codecs="avc1.64001E, mp4a.40.2"'>
<source src='video.mp4' type='video/mp4; codecs="mp4v.20.8, mp4a.40.2"'>
<source src='video.mp4' type='video/mp4; codecs="mp4v.20.240, mp4a.40.2"'>
<source src='video.3gp' type='video/3gpp; codecs="mp4v.20.8, samr"'>
<source src='video.ogv' type='video/ogg; codecs="theora, vorbis"'>
<source src='video.ogv' type='video/ogg; codecs="theora, speex"'>
<source src='audio.ogg' type='audio/ogg; codecs=vorbis'>
<source src='audio.spx' type='audio/ogg; codecs=speex'>
<source src='audio.oga' type='audio/ogg; codecs=flac'>
<source src='video.ogv' type='video/ogg; codecs="dirac, vorbis"'>

■使用例

以下のサンプルは、source要素とスクリプトを組み合わせて、
ブラウザがsource要素で与えられたメディアリソースを再生できない場合のエラー処理をしています。

ブラウザがメディアリソースをレンダリングできるかどうか分からない場合、
作成者は最後のsource要素でerrorイベントを拾ってフォールバックを動作させることができます。

HTMLソース

<script>
 function fallback(video) {
   // replace <video> with its contents
   while (video.hasChildNodes()) {
     if (video.firstChild instanceof HTMLSourceElement)
       video.removeChild(video.firstChild);
     else
       video.parentNode.insertBefore(video.firstChild, video);
   }
   video.parentNode.removeChild(video);
 }
</script>
<video controls autoplay>
 <source src='video.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
 <source src='video.ogv' type='video/ogg; codecs="theora, vorbis"' onerror="fallback(parentNode)">
</video>

source要素自体は何も表さない

source要素は、画像リソースやメディアリソースの選択肢をセットしますが、source要素自体は何も表しません。

■関連項目

  • <picture> …… 画像リソースの選択肢を提供する
  • <source> …… リソースの選択肢をセットする
  • <img> …… 画像を表す
  • <embed> …… 埋め込みリソースを表す
  • <object> …… 外部リソースを表す
  • <video> …… ビデオを表す
  • <audio> …… サウンドやオーディオを表す
  • <track> …… メディア要素のテキストトラックを表す
広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
65 users signed up
もっと表示する