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

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

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

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

Q&A

1回答

277閲覧

css position: relative absoluteについて

gomakasu423

総合スコア31

CSS3

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

0グッド

0クリップ

投稿2019/06/16 10:55

編集2019/06/16 11:01

お世話になっております。

cssのposition: relative absoluteについて
質問です。

イメージの図のようなデザインにする場合
position: relative absoluteを使い
要素を重ねる実装方法があると思いますが、
画面幅が変化すると当然にデザインが崩れると思います。

画面幅の変化に対応できる実装方法をご教示ください

イメージ説明
イメージ説明

css

1.top-page-wrapper{ 2 background: url("./img/カフェ風景画像.png") no-repeat center center / cover; 3 z-index: -11; 4} 5.top-page-wrapper-inner{ 6 max-width: 940px; 7 margin: 0 auto; 8 width: 100%; 9 padding-top: 135px; 10 padding-bottom: 131px; 11 12 13} 14.top-page-logo-wrap{ 15 width:468px; 16 height: 455px; 17 max-width: 100%; 18 margin: 0 auto; 19 padding: 131px 0 135px 0; 20 border-radius: 50%; 21 background-color: #fff; 22 border: solid 20px #42210B; 23 position: relative; 24 z-index: 2; 25 26} 27.top-page-logo-wrap img{ 28 width: 291px; 29 height: 240px; 30 margin: 0 auto; 31 position: absolute; 32 top: 56px; 33 left: 16%; 34 z-index: 1; 35 /* border-radius: 50%; */ 36} 37.Shadow{ 38 height: 94px; 39 width: 468px; 40 position: absolute; 41 top: 590px; 42 left: 383px; 43 background-color: #42210B; 44 z-index: 0; 45 border-radius: 60%; 46} 47

HTML

1 <div class="top-page-wrapper"> 2 <div class="top-page-wrapper-inner"> 3 <div class="top-page-logo-wrap"> 4 <div class="top-page-log"> 5 <img src="./img/ノマド家ロゴ.png" alt=""> 6 </div> 7 </div> 8 <div class="Shadow"></div> 9 </div> 10 <div class="Nomod-Declaration"> 11 <div class="Nomod-Declaration-inner"> 12 <p class="fs-L">Cafe of the nomad, by the nomad, for the nomad.<br> 13 ノマドの、ノマドによる、ノマドのためのカフェ。 14 </p> 15 </div> 16 </div> 17 </div> 18 19

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

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

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

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

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

m.ts10806

2019/06/16 10:57

ご自身が試したコードをご提示ください。
gomakasu423

2019/06/16 11:02

html css を追記いたし。
yasutomi

2019/06/16 12:05

私は回答しませんが3点だけツッコミます。 ・z-index: -11 や z-index: 0 ではなく整数値が望ましい ・border-radius: 60% は 50% で良い ・left: 16% と left: 383px は相対値と絶対値
m.ts10806

2019/06/16 22:54 編集

yasutomiさん 0も-3も整数のような。正数の間違いですかね?
yoshinavi

2019/06/20 11:48

今の提示画像ではどのようにしたいのかが不明です。 もう少し、どの要素をどこにどのように配置や表示させたいのかを追記してください。 ※例えば横幅○○pxの時と××pxの時のキャプチャ等
gomakasu423

2019/06/20 13:26

コメントいただきありがとうございます。 >もう少し、どの要素をどこにどのように配置や表示させたいのかを追記してください。 ⇒既存のキャプチャでいうと白い部分茶色の塗部分の位置関係を常に一定にしたい。 【イメージの概要】 丸い球体に影を付けたようなデザインをイメージしてます。 球体部分をtop-page-logo-wrapで縁をとって丸い円を描き 円の中に画像をはめ込むように記述してます。 影の部分はShadowという空のdivを作りborder-radius: 60%を指定して 楕円形を描きました。 【問題点】 Shadowをposition:absolutでleftを絶対値で指定しているので画面幅が変化すれば 親要素に対してずれていくのは当然の結果だというのは理解できます。 影を丸い球体に対して常に同じ位置にしたいので Shadowをtop-page-logo-wrapの直下(子)に配置すると 球体と影の位置関係の問題は解消されるが、スタック文脈の問題(z-indexが効かない)が発生し 影が前面に表示されてしまう。 何かいい方法があればご教示くださいませ。 以上よろしくお願いいたします。
guest

回答1

0

【問題点】

Shadowをposition:absolutでleftを絶対値で指定しているので画面幅が変化すれば
親要素に対してずれていくのは当然の結果だというのは理解できます。

理解が少し不足しているように思います。
「.top-page-logo-wrap」も「.Shadow」も、基準が同じ親であれば、親の変化に合わせて同じように変化します。

今回は親がそれぞれ違うので、当然「ズレ」が生じます。基準を同じ親にする必要があります。

以下を追加してみてください。

CSS

1.top-page-wrapper-inner { 2 position: relative; /* ← 追加 */ 3}

※「.top-page-wrapper-inner」の幅より、画面幅が小さくなると、上記だけではズレます。

投稿2019/06/20 15:14

yoshinavi

総合スコア3523

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

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

gomakasu423

2019/06/22 13:19

コメントいただきましてありがとうございます。 親要素を共通にすることで1つの問題は解消できるということは理解できました。 ありがとうございます。 しかしながら、Z-indexについては、こちらでは解消ができませんでした、 つまり、下記を追記いたしましても (.top-page-wrapper-inner { position: relative; /* ← 追加 */}) 結果として、球体と影の位置関係の問題は解消されるが、スタック文脈の問題(z-indexが効かない)が発生し 影が前面に表示されてしまう。(前回コメント) そうすると、スタック文脈、親要素を共通する、2点の観点で HTMLを書き直す必要があるという結論に至りました。 以上、よろしくお願いいたします。
yoshinavi

2019/06/23 02:04

>球体と影の位置関係の問題は解消されるが、スタック文脈の問題(z-indexが効かない)が発生し影が前面に表示されてしまう。 → 提示のコードでは「.Shadow」は、「.top-page-logo-wrap」より、背面に表示されています。 提示の画像でもそう見えます。 実際のコードでは違うのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問