私のウェブサイトでは、ユーザーがアップロードした画像を特定のサイズ(width: 600px
)で新しいウィンドウに表示したいと思います。問題は、画像が大きくなる可能性があることです。したがって、これらが600px
よりも大きい場合は、アスペクト比を維持したままサイズを変更したいと思います。
max-width
CSSプロパティを試しましたが、機能しません。画像のサイズは変わりません。
この問題を解決する方法はありますか?
HTML:
<div id="ImageContainerr">
<img src="DisplayImage.do?ad_id=${requestScope.advert.id}" class="Image" />
</div>
CSS:
img.Image { max-width: 100%;}
div#ImageContainer { width: 600px; }
また、画像にmax-width: 600px
を設定しようとしましたが、機能しません。イメージはサーブレットからストリーミングされます(Tomcatのwebappsフォルダーの外部に保存されます)。
問題は、imgタグがインライン要素であり、インライン要素の幅を制限できないことです。
したがって、最初にimgタグの幅を制限するには、インラインブロック要素に変換する必要があります
img.Image{
display: inline-block;
}
コンテナの幅が600ピクセルの場合。
それよりも大きな画像だけを内側に収めたい場合は、次を追加します:CSS:
#ImageContainer img {
max-width: 600px;
}
すべての画像に利用可能な(600px)スペースを取りたい場合:
#ImageContainer img {
width: 600px;
}
これを試して
div#ImageContainer { width: 600px; }
#ImageContainer img{ max-width: 600px}
あなたのCSSはほぼ正しいです。画像cssにdisplay: block;
がありません。また、IDに1つのタイプミスがあります。 <div id="ImageContainer">
である必要があります
img.Image { max-width: 100%; display: block; }
div#ImageContainer { width: 600px; }
<div id="ImageContainer">
<img src="http://placehold.it/1000x600" class="Image">
</div>