画像を(動的に配置し、寸法に制限を設けずに)親divと同じ幅にしようとしていますが、その幅が100%の幅より広くない限りです。私はこれを試してみましたが、役に立ちませんでした:
img {
width: 100%;
height: auto;
max-width: 100%;
}
これらの画像の多くは親divよりも幅が広いため、それに応じてサイズを変更したいのですが、小さな画像がそこに表示され、通常のサイズを超えて拡大されると、本当にひどく見えます。これを行う方法はありますか?
max-width: 100%
を単独で指定するだけです。
Googleの検索でこの投稿を見つけ、@ jwalの返信で私の問題を解決しましたが、彼のソリューションに1つ追加しました。
img.content.x700 {
width: auto !important; /*override the width below*/
width: 100%;
max-width: 678px;
float: left;
clear: both;
}
上記を使用して、イメージが含まれるコンテンツコンテナの寸法に最大幅を変更しました。この場合は、コンテナ幅-パディング-ボーダー=最大幅です。
これにより、画像がdivから抜け出ることなく、コンテンツdiv内で画像をフロートさせることができます。
私はIE 9、FireFox 18.0.2およびChrome 25.0.1364.97、Safari iOSでテストし、動作しているようです。
追加:678px(最大幅)で表示された1024px幅の画像と、500px(画像の幅)で表示された500px幅の画像でこれをテストしました。
幅を100%に設定すると、元のフルサイズの画像ではなく、そのdivの幅全体になります。 JavaScriptまたは画像を測定できる他のスクリプト言語がなければ、それを行う方法はありません。 divの固定幅または固定高さ(幅200pxなど)を使用できる場合は、tooで画像に塗りつぶす範囲を与えるのは難しくありません。ただし、200x300ピクセルのボックスに20x20ピクセルの画像を配置すると、まだ歪んでいます。
私も同じ問題を抱えていましたが、CSSの高さの値をautoに設定して、問題を修正しました。また、表示プロパティを行うことを忘れないでください。
#image {
height: auto;
width: auto;
max-height: 550px;
max-width: 1200px;
margin-left: auto;
margin-right: auto;
display: block;
}
画像が親よりも小さい場合...
.img_100 {
width: 100%;
}
最大幅を設定する必要があります。必要に応じて、片側にパディングを設定することもできます。私の場合、max-width:100%は良好でしたが、画像は画面の端のすぐ隣にありました。
max-width: 100%;
padding-right: 30px;
/*add more paddings if needed*/