0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

7日目 メディアクエリ以外のレスポンシブ対応指定方法!

0
Last updated at Posted at 2019-06-28

メディアクエリ以外のレスポンシブ対応指定方法!

今までPC版、スマホ版の画像の切り替えは、以下のように
メディアクエリを使用して行なっていました。

<!-- HTML -->
<img class="pcImg u-pcOnly" src="...">
<img class="spImg u-spOnly" src="...">
/*CSS*/
.u-spOnly {
   display: none;       /*こっちはPC版では表示しない*/
}

@media all and (max-width:768px) {
   .u-pcOnly {
      display: none;    /*こっちはスマホ版では表示しない*/
   }
   .u-spOnly {
      display: block;   
   }
}

ユーティリティクラスにして、タグに付けはずしするイメージです。
しかし、他にも方法があることを今日学びました!

①解像度ごとの表示切り替えなど

<img sizes="(min-width: 960px) 75vw, 100vw" srcset="img-1440.png 1440w, img-720.png 720w, img-360.png 360w" src="default-image.png">

sizes属性、srcset属性の使用方法です。
こちらで注意が必要なのは、HTML5.1から追加された機能なので、一部非対応のブラウザがあるということです。

secset属性
使用される画像の選択候補を設定する。
画像ファイルの横幅(w)もしくはデバイスピクセル(x)のどちらかを指定することができる。

sizes属性
画像の表示サイズ(横)を指定できる。初期値100vw。
メディアクエリでブレイクポイントを設けることができる。割合では%でなくvwを使用する。

注意!

secset="small.png 768w,large.jpg 1280w"
sizes="50vw"
で、ビューポートが1280wのとき、何が表示されるでしょうか、、?
→sizesがビューポートの50%(=640w)なので、smallが表示されます。

②pictureタグでの表示切り替え

<picture>
  <source media="(min-width: 960px)" srcset="img-pc.jpg">
  <img src="img-sp.jpg">
</picture>

pictureタグの使用です。
上の例だと、スマホ(幅960pxまでの時)にはソースタグの画像が、
pc(幅960以上の時)には下の画像が表示されます。

こちらもHTML5.1で新しく加わった要素なので、対応ブラウザには注意しないといけないです。

うまく指定して、レスポンシブ対応を目指します!

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?