質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

1回答

206閲覧

image-setを使い背景画像を閲覧環境に応じて出し分けたいと思っていますが、上手くいっているように思えません。

asada88

総合スコア7

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2023/10/09 01:53

編集2023/10/09 06:50

実現したいこと

お世話になります。
どなたかご説明くださいませんでしょうか?

① image-setを使い背景画像を閲覧環境に応じて出し分けたいと思っています。

② デベロッパーツールでどの画像が使用されているか確認できる方法はありますか?

前提

background-imageにimage-setを使い、画像サイズを4つ書きましたが画像がぼやけています。
デベロッパーツールをみてもどの画像サイズが表示されているのかは分かりません。

image-setの使用方法が間違っているのでしょうか?
デベロッパーツールでどの画像が使用されているのか確認できるのでしょうか?(違う画像を用意しなくでも)

私の考えではスクリーンが大きくなれば、一番大きいサイズの画像が使用されるべきと思っているのですが、この考え方が間違っているのでしょうか?

発生している問題・エラーメッセージ

エラーメッセージ(ではないのですが、デベロッパーツールでは下記のような感じで表示されています) //打ち消し線 ~~background-image: url(../img/gazou@4x.jpg);~~ //打ち消し線 ~background-image: image-set(url(../img/gazou.jpg) 1x, url(../img/gazou@2x.jpg) 2x, url(../img/gazou@3x.jpg) 3x, url(../img/gazou@4x.jpg) 4x);~~ //4枚の画像 background-image: -webkit-image-set(url(../img/gazou.jpg) 1x, url(../img/gazou@2x.jpg) 2x, url(../img/gazou@3x.jpg) 3x, url(../img/gazou@4x.jpg) 4x);

該当のソースコード

background-image: url(../img/gazou@4x.jpg); background-image: image-set(url(../img/gazou.jpg) 1x, url(../img/gazou@2x.jpg) 2x, url(../img/gazou@3x.jpg) 3x, url(../img/gazou@4x.jpg) 4x); background-image: -webkit-image-set(url(../img/gazou.jpg) 1x, url(../img/gazou@2x.jpg) 2x, url(../img/gazou@3x.jpg) 3x, url(../img/gazou@4x.jpg) 4x);

試したこと

4枚の画像を全て違うイメージ図に差し替えて試してみました。
一番小さいものは山の写真、次に大きいものは海の写真、三番目に大きいものは川の写真という具合にすべて違う画像を使ってみました。
ですが、画面幅を変更しても一番小さい画像1が表示されるようです。

補足情報(FW/ツールのバージョンなど)

今使っているデバイス(スクリーンのみ)の情報です。
CSSピクセル:1601px × 908px
デバイスピクセル:1601px × 908px
デバイスピクセル比:1

画像の情報として
1枚目 431×267
2枚目 862×534
3枚目 1293×801
4枚目 1724×1068 ←幅をいっぱいにした場合にこの画像が使用されるのではないのですか?

Macを使用していますが、スクリーンは別のものを使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asada88

2023/10/09 06:52

すみません、まだよく分かっていなくてこれくらいしか試す方法が分からないのですが、他にも調査する方法はあるのでしょうか? あるのでしたら教えていただけないでしょうか?
guest

回答1

0

ベストアンサー

CSSピクセル:1601px × 908px
デバイスピクセル:1601px × 908px
デバイスピクセル比:1

この状況であれば 1x を指定している画像が選ばれるのが正しい動作です。ぼけて見えるのは画像が拡大されているなどの要因でしょう。
image-set に画面サイズで切り替える機能はなかったと思うので、画面サイズで切り替えたいならメディアクエリーを使う必要があるでしょう。

投稿2023/10/09 22:10

int32_t

総合スコア21927

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asada88

2023/10/10 02:40

分かりました!!ありがとうございました! image-setについて勘違いしていたようです。 大きい画像を用意して放り込んでいればスクリーン画面が大きくなったら勝手に大きい画像が使用されるものだと思っていました! メディアクエリですね! 小さい画面(スマホなど)には1xと2x、大きい画面(PCなど)には3x、4xが出るようにメディアクエリで書いてみました。 きれいに表示されるようになりました。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問