リファレンス

【2020年版】<source>要素の使い方・サンプルコード

 

<source>要素は、<picture>要素<video>要素<audio>要素の子要素として使うことで、画面サイズや端末に応じて切り替えるリソースを指定することができます。
 
 

属性

<source 属性名="ここに値を指定">
 

media(picture 要素のみ)

リソースがどのメディアに対応しているのかメディアクエリを指定します。
 

sizes(picture 要素のみ)

srcset 属性を幅で指定した場合のみ有効になります。

sizes 属性の値は、画像を表示する条件を表すメディア条件と、条件に一致したときの画像サイズで指定します。画像サイズはピクセル密度指定子ではなく、幅指定子で指定します。

<picture>
    <source srcset="img/320.png 320w,
                    img/640.png 640w,
                    img/1024.png 1024w"
            sizes="(max-width: 320px) 200px, (max-width: 640px) 400px, 800px">
    <img src="img/1024.png"  alt="画像" />
</picture>

 
 

src

リソースの URL を指定します。
<audio> 要素と <video> 要素では必須ですが、<picture> 要素は srcset 属性の値が使われるので src 属性は無視されます。
 

srcset(picture 要素のみ)

ブラウザのスクリーンサイズやピクセル比によって表示する画像を切り替える場合に、画像 URL を指定します。

切り替える条件は「幅記述子」または「ピクセル密度記述子」で指定することができます。

幅記述子で切り替える場合

幅記述子で記述すると、ユーザーのビューポート(ブラウザ)幅によって画像の切り替えポイントを指定することができます。

<picture>
    <source srcset="img/320.png 320w,
                    img/640.png 640w,
                    img/1024.png 1024w">
    <img src="img/1024.png"  alt="画像" />
</picture>

 

このコードでは

  • 幅が 320 の場合は img/320.png
  • 幅が 640 の場合は img/640.png
  • 幅が 1024 の場合は img/1024.png

と切り替えることができます。
 

ピクセル密度記述子で切り替える場合

ピクセル密度記述子で記述すると、ユーザーのビューポート(ブラウザ)の解像度よって画像の切り替えポイントを指定することができます。

ピクセル密度で切り替える場合は「数値 + x」と書きます。

<picture>
    <source srcset="img/320.png 1x,
                    img/640.png 2x,
                    img/1024.png 3x">
    <img src="img/1024.png"  alt="画像" />
</picture>

 
 

type

リソースの MIME タイプを指定します。
 
 

グローバル属性

全ての HTML 要素に共通して使用できるグローバル属性はこちら
 
 

使用例

例① video 要素内で使う

<video controls width="320" height="200">
  <source src="sample.mp4" type="video/mp4">
  <source src="sample.mov" type="video/quicktime">
  このブラウザでは動画を再生できません。
</video>

 

例② picture 要素内で使う

このサンプルでは

  • ビューポート幅が 640px 以下の場合は img/640.png
  • それ以外の場合は img/1024.png

を表示します。

<picture>
  <source srcset="img/640.png"
          media="(max-width: 640px)">
  <img src="img/1024.png" alt="画像" />
</picture>

 

対応ブラウザ

 
 

関連するタグ

 

HTML タグ一覧はこちら

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、携帯アプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA