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

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

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

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

HTML5

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

HTML

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

CSS

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

Q&A

解決済

1回答

2163閲覧

親と同階層の要素にposition:relativeがある場合のposition:absoluteについて

user202102

総合スコア9

CSS3

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

HTML5

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/07/28 12:31

編集2021/07/28 23:50

前提

![イメージ説明

図のように、.mapを親に持つ.imgと.pinがあります。
.mapと.imgにはposition: relativeが設定されており、.pinにはposition: absolute;が設定されています。
.imgは、.mapの領域内のみを表示していて、マウス操作で拡大縮小して見える範囲を変更できる仕様となっています。 
画像が拡大縮小されると.pinの位置もその分ずれる仕組みになっています。(JavaScript)

実現したいこと

現状では、.pinの位置は.mapが基準になっていると思いますが、これを.imgを基準にするにはどのようにコーディングすればよろしいでしょうか。
階層を分ける等、.imgが基準になるよう工夫ができればいいのですが・・・
他にもいい方法があれば教えていただけると助かります。

該当のソースコード

html

1<div class="map"> 2 <img src="#" class="img"> 3 <img src="#" class="pin"> 4</div>

scss

1.map_box{ 2 width: 700px; 3 height: auto; 4 overflow: hidden; 5 position: relative; 6} 7 8.map_img{ 9 width: 1000px; 10 height: auto; 11 position: relative; 12 top: -100px; 13 left:-200px; 14} 15 16.map_img2{ 17 width: 30px; 18 height: 30px; 19 z-index:99; 20 position: absolute; 21 top: 100px; 22 left: 200px; 23} 24

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

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

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

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

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

Lhankor_Mhy

2021/07/28 13:12

.pin は、ご提示のコードで言うとどれに当たりますか? .map は .map_box のこと、.img は .map_img と .map_img2 のことだという理解で合っていますか?
user202102

2021/07/28 13:24

申し訳ございません、.pinは.map_imgに当たります。コードを修正します。
Lhankor_Mhy

2021/07/29 00:45

ご修正ありがとうございます。 HTMLは修正されているようですが、CSSはそのままのようでした。 (正しいコードの想像はつきますが)
guest

回答1

0

ベストアンサー

そのままのHTML構造だと難しいので、.imgをラップしてはいかがでしょうか。

html

1<div class="map"> 2 <div class="img-wrapper"> 3 <img src="http://placehold.jp/150x150.png?text=img" class="img"> 4 <img src="http://placehold.jp/000000/666666/30x30.png?text=pin" class="pin"> 5 </div> 6</div>

css

1/* ... */ 2 3.img-wrapper{ 4 width: max-content; 5 height: auto; 6 position: relative; 7 top: -100px; 8 left:-200px; 9} 10 11img{ 12 display: block; 13 width: 1000px; 14} 15 16/* ... */

投稿2021/07/29 01:00

Lhankor_Mhy

総合スコア36163

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

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

user202102

2021/07/29 11:08

意図した挙動を確認できました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問