モバイルファーストの画像
CoddyのHTMLジャーニー「実践的フロントエンド」セクションの一部。レッスン 9/35。
モバイルファースト画像とは、まず小さな画面で画像が適切に表示されるようにし、その後、大きな画面向けに最適化することです。モバイルでは、大きくて容量の大きい画像は読み込みを遅くすることがあるため、まず小さく最適化されたバージョンを使用します。画面が大きくなるにつれて、より高画質の画像に切り替えることができます
画面幅に応じて異なるサイズの画像を表示するために、HTML の picture 要素を使いましょう。
<picture>→ さまざまな画面向けの複数の画像オプションを保持するラッパー。
<source>→ 読み込む画像(srcset)とその条件(media)を定義します。例:スマートフォン(≤600px)→ 小さい画像、タブレット(≤1024px)→ 中くらいの画像。
<img>→<source>に一致するものがない場合のフォールバック。通常はデスクトップ向けの大きな画像です。また、altテキストも含みます。
<picture>
<source srcset="small-image.jpg" media="(max-width: 600px)">
<source srcset="medium-image.jpg" media="(max-width: 1024px)">
<img src="large-image.jpg" alt="画像の説明">
</picture>チャレンジ
簡単モバイル画面とデスクトップ画面の両方で見栄えのよい月の画像を表示することが目標です。
課題:
- レスポンシブ画像を設定するために、
<picture>要素を使用してください。 - 768px以上の画面では、より大きな月の画像を読み込みます:
https://upload.wikimedia.org/wikipedia/commons/e/e1/FullMoon2010.jpg 小さい画面(デフォルトのモバイル)では、より小さな月の画像を読み込みます:
https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/FullMoon2010.jpg/330px-FullMoon2010.jpg- アクセシビリティのために、
alt="Moon in the night sky"を含めてください。
自分で試してみよう
<!DOCTYPE html>
<html>
<head>
<title>Mobile-First Images</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 1rem;
line-height: 1.6;
background: #0a0a23;
color: #f5f5f5;
}
header {
text-align: center;
margin-bottom: 1.5rem;
}
h1 {
font-size: 1.5rem;
color: #ffd369;
}
.content {
max-width: 800px;
margin: 0 auto;
}
img {
max-width: 100%;
height: auto;
border-radius: 8px;
margin: 1rem 0;
}
p {
font-size: 1rem;
}
@media (min-width: 768px) {
h1 {
font-size: 2.25rem;
}
p {
font-size: 1.125rem;
}
}
</style>
</head>
<body>
<header>
<h1>The Moon</h1>
</header>
<main class="content">
<p>
The Moon is Earth's only natural satellite and has fascinated humans for thousands of years.
It influences tides, inspires myths, and continues to be a target for exploration.
</p>
<p>
Mobile-first images ensure the page loads fast on smaller devices while still looking
beautiful on bigger screens.
</p>
</main>
</body>
</html>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
実践的フロントエンドのすべてのレッスン
自分で練習してみよう: Webプレイグラウンド