background-size プロパティは ie>=9 のみですが、それで問題ない場合は、background-image
と setで div を使用できbackground-size: contain
ます。
div.image{
background-image: url("your/url/here");
background-size: contain;
background-repeat: no-repeat;
background-position: center;
}
これで、div サイズを任意に設定するだけで、画像の縦横比が維持されるだけでなく、div 内で垂直方向と水平方向の両方で中央に配置されます。div にはタグ自体に width/height 属性がないため、css でサイズを設定することを忘れないでください。
このアプローチは setecs の回答とは異なります。これを使用すると、画像領域は一定になり、ユーザーによって定義されます (div サイズと画像の縦横比に応じて、水平または垂直に空のスペースを残します)。スケーリングされた画像のサイズ (空白なし)。
編集: MDN background-size ドキュメントによると、独自のフィルター宣言を使用して、IE8 で background-size プロパティをシミュレートできます。
Internet Explorer 8 は background-size プロパティをサポートしていませんが、非標準の -ms-filter 関数を使用して、その機能の一部をエミュレートすることができます。
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='path_relative_to_the_HTML_file', sizingMethod='scale')";