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

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

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

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

HTML

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

Q&A

解決済

2回答

1039閲覧

position: absolute;のレスポンシブ化について

akintat-2748

総合スコア25

CSS3

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

HTML

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

0グッド

0クリップ

投稿2020/01/18 22:34

position: absolute;のレスポンシブ化について

こんにちは。プログラミング初心者です。

rails を使ってHPを作成しています。
レスポンシブ化を行なっているのですが、つまづいてしまいました。

以下に図を添付させていただきました。

左の図から画面サイズを大きくすると右の図のように②の画像とテキストはそのまま拡大されるのですが、③、⓸の画像だけどずれてしまいます。

イメージ説明

コード記載しています。かなり初歩的なことだとは思いますが、色々試したのですがうまく行きません。アドバイス頂きたいです。よろしくお願いします。

html

1<div id="q1" class="Question_8" > 2 <img class="imag_1" src="akaruihaikei.jpg"> 3 <img class="imag_2" src="check.png"> 4 <h1 class="QU_E">Question 1</h1> 5 <h2 class="koumok_u">痛くて狭い範囲すら動かせない</h2> 6 <a class="btn_yes" href="#q2"><img class="ye_s" src="yes.png"></a> 7 <a class="btn_no" href="#q2"><img class="no_" src="no.png"></a> 8</div>

css

1 2.imag_1{ 3 position: absolute; 4 height:300px; 5 top:210px; 6 left:370px; 7} 8.imag_2{ 9 position: absolute; 10 height:150px; 11 top:310px; 12 left:720px; 13} 14.QU_E{ 15 font-family: "MS 明朝",serif; 16 font-size: 30px; 17 color:#FF9966; 18 position: absolute; 19 top:209px; 20 left:400px; 21} 22.koumok_u{ 23 position: absolute; 24 font-family: "MS 明朝",serif; 25 font-size: 20px; 26 top:270px; 27 left:400px; 28} 29.ye_s{ 30 position: absolute; 31 right:830px; 32 top:360px; 33 height:130px; 34} 35.no_{ 36 position: absolute; 37 right:680px; 38 top:360px; 39 height:130px; 40}

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

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

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

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

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

guest

回答2

0

おす! ちょっとHTMLとCSSの設計の基本がまじぃみてぇだな。

おめぇのやり方だと、4枚の画像それぞれの基準座標がブラウザ自体になっちまってんだ。
だからブラウザのサイズが変わるとレイアウトが崩れちまう。

4枚の画像を入れてる<div id="q1" class="Question_8">が基準になるようすんのが基本だぞ。

そのためには、その要素の position を指定してやりゃあいい。

CSS

1div#q1 { 2 position: absolute; 3}

みてぇな感じだな。

そうすっと、中の4枚の画像の座標基準はdiv#q1になる。
topもleftもrightも全部、div#q1の4辺を基準にした値になるから、div#q1が移動してもサイズが変わっても、デザインはブラウザではなくてdiv#q1に追随するようになるんだ。

要約すっと、

####親要素には必ずpositionを指定しろ

ってぇ事だぞ。

投稿2020/01/19 01:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

hatena19

2020/01/19 02:50 編集

今回の質問で、画面サイズを広げると画像がずれるのは、#q1 に position: absolute; を設定することで解決するとお考えですか?
退会済みユーザー

退会済みユーザー

2020/01/19 02:57

なんで解決しないとおもってんだ? 質問者のCSSどうなってて、質問者の理想像の位置どうなってる?
退会済みユーザー

退会済みユーザー

2020/01/19 02:58

で、なんで解決しないと思ってんのに、 おらの回答と全く同じ内容をおめぇの回答に「追記」とか言って加えてんだ?
退会済みユーザー

退会済みユーザー

2020/01/19 03:01

hatena19ってさ、あたま悪ぃよな。あるものそのまんましか考えられねぇだろ。 今回の質問の場合、画像サイズを変える事でレスポンシブにするなら どう修正していくべきかって事、全くわかってねぇだろ。
hatena19

2020/01/19 03:01

実際、それでは解決しないですよ。 追記は今回の質問のずれとは関係ないですが、あくまで補足です。
退会済みユーザー

退会済みユーザー

2020/01/19 03:02

はっきり言うけど、レスポンシブで left固定なんてありえねぇよ。 ちょっと考えてみりゃぁそのくれぇ分かるだろうに。
退会済みユーザー

退会済みユーザー

2020/01/19 03:04

で、なんで追記、取らねぇの? 漁夫の利?
kyoya0819

2020/01/19 14:12

全く関係ないが、「漁夫の利」ではない気がする。(意味的に
guest

0

ベストアンサー

HTMLとCSSでセレクタが異なっているのはタイプミスですか。
HTML → btn_yes btn_no
CSS → .ye_s .no_
タイプミスとして、
(aタグとimgタグの違いでした。)

.imag_1.imag_2 は、左基準left:で位置決めしているのに対して、
.ye_s.no_ は右基準right:で位置決めしているのが原因でしょう。

.ye_s.no_ も左基準の位置決めに修正すればいいでしょう。

追記

現状だとbodyの左上が座標基準になります。親要素の#q1を座標基準にしたいなら、それに、position:relative;を設定してください。(absoluteじゃないのでご注意くださいね。)

css

1#q1 { 2 position:relative; 3}

追記2

画像のずれをそろえるには、上記の回答のようにそれぞれの画像の位置決めを left に統一するのがいいのですが、
そのうえでレスポンシブ対応→画面幅に関わらず画面の中央に表示にするには、親要素(#q1)の幅を固定してそれを中央寄せにする設定にするのがいいでしょう。
Codepenサンプル

投稿2020/01/18 23:59

編集2020/01/23 05:40
hatena19

総合スコア33790

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

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

akintat-2748

2020/01/19 00:59

ありがとうございます。 leftに変更したらうまくできました。助かりました。 セレクタは記載ミスでした。すみません。
退会済みユーザー

退会済みユーザー

2020/01/19 02:22

全部 top left 基準にしたらレスポンシブにならねぇだろ。 回答の方向性180度変わったらそりゃもう、追記じゃねぇだろ。 このサイト、どうなってんだ? 一体。
hatena19

2020/01/19 02:38

親要素の幅が変わったら(body基準でも、#q1基準でも)、left と right では位置がずれます。この質問は、画面サイズが変わってもそれぞれの画像が重なったままにしたいということなので、top left 基準でいいと思いますが。質問の画像をよくみてください。
退会済みユーザー

退会済みユーザー

2020/01/19 02:40

そう思うなら、なんで追記してんだ? おめぇ。 言ってる事とやってること、合ってねぇだろ。
退会済みユーザー

退会済みユーザー

2020/01/19 02:41

親要素の幅変わった場合に、leftで位置指定すんのがレスポンシブだと思ってんのか? おもしれぇ事考えるな、おめぇ。
退会済みユーザー

退会済みユーザー

2020/01/19 02:42

まぁ、こんな回答でも質問者がベストアンサーくれるんだからそれでいいんじゃねぇか? ただ、追記はとっとけ。回答内容ぶれっから。
akintat-2748

2020/01/19 06:15

色々とありがとうございます。試行錯誤で徐々に勉強して行きたいと思います。また、アドバイスのほどよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問