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

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

新規登録して質問してみよう
ただいま回答率
85.48%
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

解決済

2回答

18847閲覧

縦横比は変えずに画像を拡大、縮小して表示したい

sagume

総合スコア19

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クリップ

投稿2016/08/25 00:33

編集2016/08/25 04:04

###前提・実現したいこと
・image画像の縦横比は元のまま、ウインドウサイズの縦横の小さい方に合わせて拡大・縮小して
ウインドウがどんな大きさ、形になっていても
画像がウインドウに収まっている状態で表示させたい。
・左右中央寄せにしたい。
・画像を元の大きさ以上には拡大しないようにしたい。
・背景画像にする以外の方法で行いたい。

###該当のソースコード

◎HTML

<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="./css/style.css"> <TITLE>画像テスト用</TITLE> </HEAD> <BODY> <div class="textCenter"> <P class="imgSize"><img SRC="./images/image01.png"></P> </div> </BODY> </HTML>

◎CSS

/* style CSS */ body { background-color: #ffffff; } .imgSize { max-width: 450px; /* 最大幅 */ margin-right: auto; margin-left : auto; } P.imgSize img { width: 100%; } .textCenter{ text-align: center; }

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

上記のやり方ですと
ウインドウの横幅をドラッグして大きくしたり縮めたりしてみると
ウインドウの大きさに追従して画像が拡大、縮小され
指定した最大幅以上には拡大されないのですが
ウインドウの縦幅を小さくしたときに、画像が縮小されず
下にはみ出した状態になってしまいます。
これを、ウインドウが縦に短くなったときにも
縮小して全部表示されるようにしたいです。

いろいろ調べてみたのですが、縦横どちらの動きにも
追従する方法が見つけられませんでした。

すみませんが、ご教授お願いいたします。

追記:
イメージ的にこんな感じです(画像ソフトで作ったものです)
イメージ説明

ウインドウの上下を縮めたとき
イメージ説明

ウインドウの左右を縮めたとき
イメージ説明

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

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

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

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

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

kei344

2016/08/25 03:00

コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
sagume

2016/08/25 04:05

すみません、修正いたしました。
guest

回答2

0

ベストアンサー

こういう感じとか。

CSS

1img { 2 display: block; 3 max-height: 100vh; 4 max-width: 100vw; 5 margin: 0 auto; 6} 7```**動くサンプル:**[https://jsfiddle.net/9mjrchcj/](https://jsfiddle.net/9mjrchcj/)

投稿2016/08/25 06:22

kei344

総合スコア69398

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

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

sagume

2016/08/25 07:06

ご返信ありがとうございます。 まさに!こういう動作にしたくて、しかもシンプルな記述で感激です。 すみません、教えて頂いた部分について、なぜこうなるのか分からない部分が 出てきてしまったのですが、 vh、vwといった単位を初めて知ったため、使い方を調べてみたのですが vw:ビューポートの幅の1/100 vh:ビューポートの高さの1/100 という単位なので、100vh、100vwと記述すると ビューの高さ一杯、幅一杯に表示する。という意味になると思ったのですが ビューの高さ、幅を目いっぱい広げた時に 元の画像の大きさ以上にならないのはなぜなのでしょうか? 重ねてすみませんが、こちらもご教授頂けましたら幸いです。
kei344

2016/08/25 07:11

「max-height / max-width」は「最大ここまで」なので、その数値を超えないように制限されます。だから、ビューポートの幅のほうが大きい場合は制限する必要が無いのでそのまま、だったと思います。
sagume

2016/08/25 07:15

なるほど、重ねてご回答いただき有難うございました。とても勉強になりました。
guest

0

こんな感じでどうでしょうか。

.imgSize { margin-right: auto; margin-left : auto; } P.imgSize img { width: 100%; height: 100%; max-width: 450px; /* 最大幅 */ max-height: 450px; /* 最大幅 */ } .textCenter{ text-align: center; }

投稿2016/08/25 00:48

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

sagume

2016/08/25 01:05

ご返信ありがとうございます。 しかしこのやり方ですと、画像の縦横比が変わってしまうので ウインドウサイズを変えても、画像の縦横比は変わらないまま 画像が拡大、縮小表示される方法をさがしています。
退会済みユーザー

退会済みユーザー

2016/08/25 03:23

P.imgSize img { max-height: 100%; max-width: 100%; } これではどうでしょうか?
sagume

2016/08/26 00:44 編集

すみません、2回回答を頂いているのに見落としていました 返信が遅くなってしまって申し訳ありません。 本当にありがとうございます。
sagume

2016/08/27 11:56 編集

こちらの方法でも動作を確認できたと思っていましたが あらためて確認してみたところ 左右の動きには追従していますが、上下は追従していないようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問