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

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

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

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

CSS

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

Q&A

2回答

1016閲覧

画像のサイズ指定について

bluecat39

総合スコア0

HTML

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

CSS

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

0グッド

1クリップ

投稿2021/07/01 16:55

前提・実現したいこと

cssでブラウザのサイズに合わせて画像のサイズが縦横比率が変わらず変化するようにサイズの指定をしたいです。

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

画像が指定のサイズにならず、小さく表示されてしまいました。
実際にはwrapの中に6つ同じhtml構造で画像を配置しているため、横にスクロールできるようにしています。

該当のソースコード

HTML

1<div class="wrap"> 2 <div class="slide"> 3 <a href="a#"> 4 <img src="image/~~~~~~~"> 5 </a> 6 <p>~~~~~~~~</p> 7 </div> 8</div>

css

1.wrap { 2 display:flex; 3 flex-direction:row; 4 width:96%; 5 height:auto; 6 margin:0px 2%; 7 overflow-y:hidden; 8 overflow-x:scroll; 9} 10.slide { 11 width:30%; 12 height:auto; 13 margin-right:3%; 14 white-space:nowrap; 15} 16.slide a { 17 display:inline-block; 18 text-decoration:none; 19 width:100%; 20 height:auto; 21} 22.slide img { 23 display:inline-block; 24 width:100%; 25 height:auto; 26 border-radius:7px; 27} 28.slide p { 29 width:100%; 30 height:auto; 31}

試したこと

調べたところ、画像を表示するimg要素のwidthは100%にすれば、親要素のサイズ(今回は.slide{width:30%;})に合わせて自動調整されるとあったのですが、親要素の大きさが指定の大きさになりませんでした。
slideクラスのwidthを変えても一定のサイズから大きくなりませんでした。
imgのwidthを変えた際も同様に小さくはなるけど、一定サイズより大きくなりません。
imgのwidthをautoにするとそれぞれの画像がバラバラの大きさになり、親要素の大きさよりも大きくなってしまいました。

プログラミング初心者で説明に至らない点もあると思いますがよろしくおねがいします。

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

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

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

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

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

guest

回答2

0

slideクラスのwidthを変えても一定のサイズから大きくなりませんでした。

そうなのですね・・・。難しいですね。
ためしにコードをサーバに挙げてみたのですが、こういう感じでしょうか?
https://quintessential-lightning-fountain.glitch.me

投稿2021/07/20 13:27

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

親要素の大きさが指定の大きさになりませんでした。

この意味がちょっとわからないですね。たぶんどこかに誤解があるような気がします。

.wrapは、その親要素の96%の幅です。たとえば親要素がbodyで幅1000ピクセルだったとすると、.wrapの幅は960ピクセルです。
そして.slideは、それ(.wrap)の30%の幅ですので960×0.3=288ピクセルです。
aはそれ(.slide)の100%で288ピクセル。
imgはそれ(a)の100%で288ピクセル。
pは親要素.slideの100%で288ピクセル。

こういう計算になります。

投稿2021/07/01 18:10

itagagaki

総合スコア8402

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

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

bluecat39

2021/07/02 08:31 編集

ご回答ありがとうございます。 説明不足で申し訳ありません。親要素(.slide)がwidth:30%;にならないということです。ご回答いただいた通りbodyが1000ピクセルの時.slideは288ピクセルになるはずなのですが、100ピクセル程しかありません。 .slideにflex-shrink:0;を指定したところ288ピクセルに統一されたのですが、.wrapにdisplay:flex;を指定したため、子要素の.slideに初期値でflex-shrink:1;が効いていて、.slideが縮んでしまったという解釈で良いのでしょうか?その場合、今回のようにoverflowを指定していても縮んでしまうのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問