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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

Q&A

解決済

2回答

2528閲覧

レスポンシブの背景画像の特定の場所にpositionで合わせる

jyoze

総合スコア48

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

CSS

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

0グッド

0クリップ

投稿2017/09/07 02:31

編集2017/09/07 04:44

800pxの背景画像の特定の場所に、絶対位置で画像をのせたいのですが、
画面のサイズが800px以下になると、のせた画像と背景がズレてきます。
また、800px以上では背景画像が大きくなるので、できれば、背景画像の大きさに合わせて、
固定画像も大きくしたいです。

背景画像にAという点があるとすると、その点の箇所に常に固定画像がのっているイメージです。

JavaScriptを利用する方法でもかまいません。
よろしくお願いいたします。

▼現象の表現
https://jsfiddle.net/5bupgcce/

<div> <p><img src="http://placehold.jp/50x50.png"></p> </div>
div { position: relative; min-height: 200px; background-image: url(http://placehold.jp/9999cc/333333/750x200.png); background-size: cover; background-repeat: no-repeat; background-position: center center; p { position: absolute; top: 30%; left: 70%; } }

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

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

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

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

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

kei344

2017/09/08 15:51

min-heightで指定されていますが、高さが変化する場合があるのでしょうか。
guest

回答2

0

背景要素がmin-height指定なので難しいですね。

上に乗せる画像サイズに特に指定が無いのであれば(クリックさせたいなど)
背景画像とまったく同じサイズの背景透過画像を用意し
上になる要素も同じくmin-height指定で背景に上記透過画像をcoverで配置すれば実現はします。

投稿2017/09/08 03:01

shaak

総合スコア607

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

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

0

ベストアンサー

上下左右中央寄せで大丈夫ですか?
top:50%;left:50%;とtransform:translate(-50%,-50%);で実現できます。
画像サイズの可変はimgにwidth:100%;を追加し、pタグに丁度いいサイズの%を適用すれば大丈夫だと思います。

追記:
%指定だと可変しますがブラウザの幅によってサイズが大きくなるので、max-widthやmin-widthを使って最大&最小幅を固定したほうが良いかもしれません。
指定しないと大きくなりすぎた場合750px × 200pxの枠からハミ出してしまいます。

DEMO
https://jsfiddle.net/5bupgcce/4/

投稿2017/09/07 02:52

編集2017/09/07 03:01
Higemura

総合スコア274

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

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

jyoze

2017/09/07 04:36

Higemuraさん ありがとうございます。 すみません。位置は中央ではなく例えば、left:80%などの特定の場所になります。 背景画像にAという点があるとすると、その点の箇所に常に固定画像がのっているイメージです。 imgのサイズについては理解できました。 >pタグに丁度いいサイズの%を適用 このちょうどいいサイズというのは計算式のようなものはないでしょうか?
Higemura

2017/09/07 04:54

でしたらfeft:80%;transform: translate(-80%, -50%);にすればいいです。 >>pタグに丁度いいサイズの%を適用 >このちょうどいいサイズというのは計算式のようなものはないでしょうか? この部分に関してはjyozeさんのさじ加減だと思いますが、どのぐらいのサイズの画像を配置する想定ですか? calcという単位を計算できる記述もありますが、どこを基準にするかによって変わります。 例えば高さ200pxの半分でしたら、height:calc(100% - 100px);などでも表せます。 先ほど私が記述した内容は「横幅100に対して30%の割合で画像を表示。(最小サイズ50px、最大サイズ180px)」という記述です。
jyoze

2017/09/07 05:14

返答ありがとうございます。 >どのぐらいのサイズの画像を配置する想定ですか? 実際は元サイズ1200pxの背景に160pxの画像をおく想定です。 cssのcalcの存在は知っているのですが、 今回の場合どのように使うのかがわかりません。 例えば「jsfiddle.net」のサンプルにあります背景に記載されている 「750」という数字の「5」の真上に常に画像が付いてくる状態を望んでおります。 画面を縮めすぎると「5」自体が見えなくなりますが、 その際は固定画像も見えなくなるのが望ましいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問