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

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

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

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

CSS

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

Q&A

解決済

2回答

1048閲覧

CSSでトリミングした画像をレスポンシブに表示させたい

aya.mik

総合スコア1

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/05/12 08:45

編集2020/05/12 13:22

前提・実現したいこと

初めて質問させていただきます
あちこち検索しましたが答えが見つけられず・・・
ご教授いただけましたら幸いです m(_ _)m

1890 × 400pxの画像を用意し
CSSでトリミングして
945 × 400pxで左半分を表示しています
(あるアクションをフックしてその画像を左から右にアニメーションさせるため)

そのトリミング済み画像をページ上でレスポンシブに表示させたいと思っています

発生している問題・エラーメッセージ

画像を画面の幅に合わせて
表示したいのですが
ページを縮小すると
画像が画面の表示領域からはみ出してしまいます

該当のソースコード

HTML

1<div class="outBox"> 2 <div class="inBox" > 3 <img id="mainCategoryImage" src="http://xxxxxxxx/category9.png"> 4 </div> 5</div>

CSS

1div.inBox{ 2 width: 945px; 3 height: 400px; 4 position: relative; 5 overflow: hidden !important; 6} 7#mainCategoryImage{ 8 max-width:initial; 9 width: auto; 10 height: 400px; 11 position: absolute; 12 top: 0; 13 left: 0; 14 border: 0; 15 transition: 2.5s; /* 後にleftを-945pxにしてアニメーションさせる */ 16}

試したこと

親要素のdivタグで囲み(outBox)
子要素(inBox)がそれに合わせて拡大縮小できないかと
width: auto;
height: auto;
overflow: auto;
などやって見ましたがダメでした・・・涙

補足情報(FW/ツールのバージョンなど)

確認はCromeで行なっていますが
対象は最新のブラウザ、モバイルも範囲に入ります

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

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

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

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

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

kei344

2020/05/12 08:51

コードに全角記号が混じっていますが、実際のコードも同じでしょうか。
aya.mik

2020/05/12 09:16 編集

申し訳ありません! コピーする際に若干修正したので 混入した可能性がありますが コメントの所以外でしょうか?
kei344

2020/05/12 09:19

「“outBox”」「“inBox”」とかの記号が全角ですね。
aya.mik

2020/05/12 13:22

おっしゃる通りです! 大変失礼いたしました・・・ わかりやすい名前に変更するつもりでうっかり全角で更新してしまいました 修正しました
guest

回答2

0

まずは、HTMLの全角引用符を半角に修正して、

html

1<div class="outBox"> 2 <div class="inBox"> 3 <img id="mainCategoryImage" src="https://placehold.jp/1890x400.png"> 4 </div> 5</div>

CSSはvwを単位にしてサイズを設定すればどうでしょうか。

css

1body { 2 margin: 0; 3} 4 5div.inBox{ 6 width: 100vw; 7 height: 40.4vw; 8 position: relative; 9 overflow: hidden; 10} 11#mainCategoryImage{ 12 max-width:initial; 13 width: 200vw; 14 height: 40.4vw; 15 position: absolute; 16 top: 0; 17 left: 0; 18 border: 0; 19 transition: left 2.5s; /* 後にleftを-945pxにしてアニメーションさせる */ 20}

投稿2020/05/12 09:52

hatena19

総合スコア33715

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

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

aya.mik

2020/05/13 03:27

本当にありがとうございます! 恥ずかしながらvwを知らずとても勉強になりました!!! 実装し、拡大縮小も無事実現することができました〜♬ ただ、親要素の拡大縮小との連動がずれてしまい自分の実力では綺麗に制御できず・・・ もっと勉強したいと思います 検証に時間がかかりお礼が遅くなりましたこと大変申し訳ありませんでした
guest

0

ベストアンサー

こういう感じでしょうか?
サンプル

css

1div.outBox{ 2 overflow: hidden !important; 3 width: 100%; 4} 5div.inBox{ 6 width: 200%; 7} 8#mainCategoryImage{ 9 width: 100%; 10 transition: 2.5s; /* 後にleftを-945pxにしてアニメーションさせる */ 11} 12#mainCategoryImage:hover{ 13 margin-left: -50%; 14}

投稿2020/05/12 09:38

Lhankor_Mhy

総合スコア36104

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

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

aya.mik

2020/05/13 03:22

本当にありがとうございます! おかげさまでまさにこのCSSで 思い通りの動きを実現することができました! CSSの理解が浅く、余計なものをつけていたので検証するのに時間がかかってしまいました お礼が遅くなり申し訳ありませんでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問