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

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

新規登録して質問してみよう
ただいま回答率
85.48%
レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1327閲覧

背景画像、グラデーションアニメーションの重ね合わせレスポンシブ対応

taka7777

総合スコア6

レスポンシブWebデザイン

レスポンシブWebデザイン(RWD)は、スクリーンのサイズ、プラットフォーム、オリエンテーションに基づいて様々なデバイスで最適のサイトを生成するのウェブデザインとその開発のアプローチ方法を呼びます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/07/31 16:56

前提・実現したいこと

透過背景画像の後ろに画像サイズと同じサイズでグラデーションのアニメーションを追加し、レスポンシブ対応させたいと考えています。

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

なんとか背景画像とグラデーションを重ね合わせることは出来ましたが、下記のコードでは、表示画面サイズを変えると、背景画像は、表示画面サイズに合わせて縦横比を維持したまま拡大縮小しますが、グラデーションは高さが500pxに固定されたままになって、背景画像とグラデーションがずれてしまいます。
また、モバイル端末で見てみると幅も高さも大きくずれてしまいます。
グラデーションのサイズを背景画像のサイズに追従させるにはどうしたらいいでしょうか?

該当のソースコード

CSS
コード

.background_img{ background-image: url(background_image3.png); width:100%; height: 500px; background-repeat: no-repeat; background-size: 100% auto; } .background_img::after { content: ''; width: 100%; height: 500px; background: linear-gradient(90deg ,#f00,#f80,#dd0,#00dd00,#00dddd,#0000ff,#ee00ee,#ff0000); background-size: 200%; filter: blur(1px); animation: AnimationName 10s ease infinite; position: absolute; z-index: -1; } @keyframes AnimationName { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:200% 50%} }

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

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

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

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

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

guest

回答1

0

ベストアンサー

css

1.background_img{ 2 /* 略 */ 3 overflow: hidden; /* 追加 */ 4 position: relative; /* 追加 */ 5} 6 7.background_img::after { 8 content: ''; 9 width: 100%; 10 height: 100%; /* 変更 */ 11 /* 略 */ 12}

親に position: relative; が無かったのが
一番の原因では^^;;

これで動くと思います^^

追記

背景画像の高さ(縦横比)を保ったまま可変にしたい場合は

background-image(背景画像) は要素に高さを与えません。
このような場合は paddingを利用します。

css

1.background_img{ 2 /* 略 */ 3 heigth: 0; /* 変更 */ 4 padding-bottom: 50%; /* 背景画像の縦横比に合わせて調整して下さい */ 5}

先の変更と併せてこのように設定すると
縦横比を保ったまま
画面サイズに合わせ可変するようになります^^

投稿2020/08/01 01:19

編集2020/08/01 02:30
-millmill-

総合スコア674

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

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

taka7777

2020/08/01 02:14

ご回答ありがとうございます。 回答頂いたコードを追加したら、幅方向はぴったり合いました。 ただ、高さ方向が、グラデーションの高さが固定されたまま動きません。 heght: 500px; が問題なのかと思うのですが、消すと何も表示されなくなってしまいます...。 高さを画像と合わせるにはどうすればいいですか?
-millmill-

2020/08/01 02:16

.background_img に overflow: hidden; .background_img::after に height: 100%; これは入れましたか?
-millmill-

2020/08/01 02:21

>高さを画像と合わせるには これは .background_img の background-image: url(background_image3.png); の事でしょうか?
-millmill-

2020/08/01 02:42

.background_img の設定だけを変えるのは .background_img::after は .background_img の子要素だからです。 親(background_img) を可変にすると、 子(background_img::after ) は親に追従して拡縮されます、 更に、overflow: hidden; で親要素からはみ出る部分を非表示にする という事です。
taka7777

2020/08/01 02:46

追記頂いた内容で設定したら解決しました。 初心者のわたしに丁寧に教えて頂いて、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問