お世話になっております。
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
ご自身が試したコードをご提示ください。
html css を追記いたし。
私は回答しませんが3点だけツッコミます。
・z-index: -11 や z-index: 0 ではなく整数値が望ましい
・border-radius: 60% は 50% で良い
・left: 16% と left: 383px は相対値と絶対値
yasutomiさん
0も-3も整数のような。正数の間違いですかね?
今の提示画像ではどのようにしたいのかが不明です。
もう少し、どの要素をどこにどのように配置や表示させたいのかを追記してください。
※例えば横幅○○pxの時と××pxの時のキャプチャ等
コメントいただきありがとうございます。
>もう少し、どの要素をどこにどのように配置や表示させたいのかを追記してください。
⇒既存のキャプチャでいうと白い部分茶色の塗部分の位置関係を常に一定にしたい。
【イメージの概要】
丸い球体に影を付けたようなデザインをイメージしてます。
球体部分をtop-page-logo-wrapで縁をとって丸い円を描き
円の中に画像をはめ込むように記述してます。
影の部分はShadowという空のdivを作りborder-radius: 60%を指定して
楕円形を描きました。
【問題点】
Shadowをposition:absolutでleftを絶対値で指定しているので画面幅が変化すれば
親要素に対してずれていくのは当然の結果だというのは理解できます。
影を丸い球体に対して常に同じ位置にしたいので
Shadowをtop-page-logo-wrapの直下(子)に配置すると
球体と影の位置関係の問題は解消されるが、スタック文脈の問題(z-indexが効かない)が発生し
影が前面に表示されてしまう。
何かいい方法があればご教示くださいませ。
以上よろしくお願いいたします。