LoginSignup
0
1

More than 3 years have passed since last update.

【HTML5】 簡単レスポンシブ対応:HTMLのみで画面幅に合わせて表示する画像を変更する方法(picture, sourceタグの使い方)

Posted at

HTML5から追加されたpictureタグを使うと、画面サイズによって表示する画像を簡単に切り替えることができる。

CSSやJSが不要でHTMLのみで実現できる。

使い方

.html
<picture>
    <source media="(メディア属性の値)" srcset="画像パス">
    <img src="画像パス" alt="" />
</picture>
  • 使うタグはpicturesourceimgの3つ。
  • メディア属性の条件に適合する場合はsrcsetで指定した画像が表示される。
  • どの条件にも当てはまらない場合はimgが適用される。

▼ポイント

  1. viewportの記述必須。
  2. source属性は複数記述可能。
  3. source属性を記述する順番は重要。上から順にメディア属性の条件が照らし合わされる。
  4. どの条件にも当てはまらない場合はimgタグが適用。
viewport
<meta name="viewport" content="width=device-width, initial-scale=1.0">


メディア属性の使い方

メディアクエリを属性に適用したもの。メディア属性が使えるのは次の5つのタグ:a, area, link, style, source

media="screen and (適用条件:画面幅)"

▼適用条件

適用条件 概要 意味
max-width 以下 画面幅の最大値。小さい幅から、この値まで適用。
min-width 以上 画面幅の最少値。大きい幅から、この値まで適用。

maxは以下、minは以上。〜以上、〜以下としたい場合はそれぞれを組み合わせる。

(min-width: 360px) and (max-width: 680px)なら、360px~680pxの時に適用となる。


実例

<picture>
  <source srcset="public/image/pic-pc.png" media="(min-width: 1080px)"/>
  <source srcset="public/image/pic-tablet.png" media="(min-width: 680px)"/>
  <source srcset="public/image/pic-sp.png" media="(min-width: 360px)"/>
  <img src="public/image/pic.png" alt="" />
<picture>
  • 1080px以上はpic-pc.pngを表示。
  • 680px以上(~1079px)はpic-tablet.pngを表示。
  • 360px以上(~659px)はpic-sp.pngを表示。
  • 上記のどれにも当てはまらない場合(~359px)はpic.pngを表示。



以上。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1