ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
source 要素とは
<source> は HTML5 で導入されたメディアソース指定用の空要素です。画像 (<picture>)、動画 (<video>)、音声 (<audio>) の中に複数の <source> を並べることで、ブラウザが環境に最適なフォーマットや解像度を自動選択できるようになります。
同じ動画を MP4 / WebM の両方で配信したい、画像を WebP に対応ブラウザだけ送りたい、ビューポート幅で別画像を出したい、といったフォールバック / 出し分けすべての起点になる要素です。
使う場所
| 親要素 | 主な用途 |
|---|---|
<picture> | WebP / AVIF へのフォールバック、アートディレクション、レスポンシブ画像 |
<video> | MP4 / WebM / OGG など複数フォーマットの並列指定 |
<audio> | MP3 / OGG / AAC など複数フォーマットの並列指定 |
主な属性
| 属性 | 意味 |
|---|---|
src | メディアファイルの URL(video / audio で使用) |
srcset | 解像度違いの画像 URL リスト(picture / 画像で使用) |
type | MIME type(例: video/mp4, image/webp) |
media | メディアクエリ。picture で出し分けに使う |
sizes | ビューポート幅ごとの画像表示サイズの指針 |
width / height | レイアウトシフト防止用の寸法ヒント |
1. picture での WebP フォールバック
WebP / AVIF に対応していないブラウザには PNG / JPEG を返す、定番パターンです。上から順に評価され、最初に対応できたものが採用されるため並び順が重要です。
<picture>
<source type="image/avif" srcset="hero.avif">
<source type="image/webp" srcset="hero.webp">
<img src="hero.jpg" alt="ヒーローイメージ" width="1200" height="600">
</picture>
2. picture でアートディレクション
スマホでは縦長、PC では横長の別画像を出し分ける場合に media 属性を使います。
<picture>
<source media="(max-width: 480px)" srcset="hero-mobile.jpg">
<source media="(max-width: 1024px)" srcset="hero-tablet.jpg">
<img src="hero-desktop.jpg" alt="ヒーローイメージ">
</picture>
3. レスポンシブ画像(srcset + sizes)
解像度違いの画像を用意し、ビューポート幅に応じて最適なものを取得させます。Retina 環境でも適切なサイズが選ばれ、通信量を削減できます。
<picture>
<source
type="image/webp"
srcset="card-400.webp 400w,
card-800.webp 800w,
card-1200.webp 1200w"
sizes="(max-width: 600px) 100vw, 50vw">
<img
src="card-800.jpg"
srcset="card-400.jpg 400w, card-800.jpg 800w, card-1200.jpg 1200w"
sizes="(max-width: 600px) 100vw, 50vw"
alt="カード画像">
</picture>
4. video で複数フォーマット指定
<video controls width="640" poster="thumb.jpg">
<source src="movie.webm" type="video/webm">
<source src="movie.mp4" type="video/mp4">
<p>お使いのブラウザは動画再生に対応していません。
<a href="movie.mp4">こちらから動画をダウンロード</a>してください。</p>
</video>
5. audio で複数フォーマット指定
<audio controls>
<source src="song.ogg" type="audio/ogg">
<source src="song.mp3" type="audio/mpeg">
お使いのブラウザは音声再生に対応していません。
</audio>
type 属性に書く MIME タイプの例
| 用途 | MIME タイプ |
|---|---|
| 画像 WebP | image/webp |
| 画像 AVIF | image/avif |
| 動画 MP4 (H.264) | video/mp4; codecs="avc1.42E01E, mp4a.40.2" |
| 動画 WebM | video/webm |
| 音声 MP3 | audio/mpeg |
| 音声 OGG Vorbis | audio/ogg |
注意点
- 並び順が評価順。新しいフォーマットを上、レガシーを下に書く
picture内では最後に必ず<img>を置く(フォールバック兼アクセシビリティ用)video/audioでもフォールバックテキストを書いておくと、再生不能環境で代替案を提示できるtype属性を正しく書いておくと、ブラウザはダウンロードせず判定できるので転送量を節約できる- SEO 観点でも
altと適切な MIME タイプの指定は重要
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?