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

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

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

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

Q&A

解決済

2回答

1220閲覧

CSSで画像+グラデーションを行なった際の画像のサイズについてです。

Hayato1201

総合スコア220

CSS3

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

0グッド

0クリップ

投稿2018/09/22 06:55

以下の様に画像とグラデーションを合わせた様なレイアウトを行いました。

CSS

1 background: linear-gradient(-45deg,rgba(6, 210, 200, 0.9), rgba(0, 72, 150, 0.9)), 2 url(../../images/hoge.png); 3 background-size: 100vw 100vh;

background-sizeを以上の様にして画面全体にしたのは良いのですが、そん際にその画像がスマホ画面などでは縦に伸びてしまいます。これを改善するにはどうすれば良いでしょうか?

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

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

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

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

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

spookybird

2018/09/22 07:06

"改善"とは具体的にどうなれば正解ですか。PCでも画面幅や高さを少し変えると画像の縦横比が崩れると思いますが、どうしたいんでしょうか。
Hayato1201

2018/09/22 07:14

画像が縦に伸びてしまっているので本来の画像の縦横の比の様にして表示したいです!
spookybird

2018/09/22 07:23

縦横比を維持するということは、縦か横かあるいはその両方を画面いっぱいにすることをあきらめなければなりません。どう諦めて縦横比を維持するんでしょうか。
Hayato1201

2018/09/22 09:03 編集

グラデーション+画像という様にしていますが、グラデーション部分だけを画面いっぱいにして画像は画面いっぱいにする必要はないので分けて表示することは可能でしょうか?https://www.webcreatorbox.com/tech/css-gradient このサイトを参考にしたのですが。。。
guest

回答2

0

その参考サイトによれば
グラデーションオーバーレイの項目で以下のようにCSSが書かれています。

css

1body { 2 background: linear-gradient(-45deg, rgba(246, 255, 0, .8), rgba(255, 0, 161, .8)), 3 url(images/bg-cherrybrossam.jpg); 4 background-size: cover; 5}

このとおりに書けば良いだけだと思いますよ。
それともこれではなにか問題があるからご自分で書き方を変えたんでしょうか?

投稿2018/09/22 09:37

spookybird

総合スコア1803

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

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

Hayato1201

2018/09/22 10:13

background-size: をcoverにすると画像が画面い収まらないため、100vw 100vh;の様にしました。しかしそれだと縦に伸びてしまうので画面に収まる様に元の比で表示したかったという事です。。。
spookybird

2018/09/22 10:22

あなたが 「グラデーション部分だけを画面いっぱいにして画像は画面いっぱいにする必要はない」 と仰ったので、この回答を提示しました。
Hayato1201

2018/09/22 12:27

言い方が悪かったかもしれませんが画面いっぱいにする必要はないけれども画像が収まる様にもしたいです。
spookybird

2018/09/22 13:29

画像が収まるというのは横ですか。縦ですか。縦も横もですか?
guest

0

ベストアンサー

アスペクト比(縦と横の比率)が画像には必ずあるので、「横に長い写真」を「スマホの縦画面」で表示させる場合は、隙間は出ます。

それを補うのが一般的には「spookybird」さんの回答にある「background-size:cover;」です。

一般的ではないのが、質問者さんの提示コード「background-size: 100vw 100vh;」です。
これは「アスペクト比を無視して良いですよ」となり、写真が縦に伸びたりします。

-追記-
隙間が出来ても良いので、写真(画像)をカットせず全て表示させたいのであれば「background-size:contain;」を使えば良いと思います。

CSS

1body { 2 background: linear-gradient(-45deg,rgba(6, 210, 200, 0.9), rgba(0, 72, 150, 0.9)), 3 url(../../images/hoge.png); 4 background-size: contain; 5 background-position: center center; 6 background-repeat: no-repeat; 7}

投稿2018/09/23 00:13

編集2018/09/23 00:48
yoshinavi

総合スコア3523

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

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

Hayato1201

2018/09/25 00:27

これで思った通りにできました! ありがとうございました!
yoshinavi

2018/09/25 06:13

解決されて何よりです。 (^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問