あなたは多くの方法でそれを達成することができますが、コンテキストを知らずに「セマンティック」にすることはできません (画像はページのメイン/唯一のコンテンツですか? ブログ投稿の途中ですか?)。に行きdiv
ます。
1. position:absolute;
+margin:auto;
サポート: クロスブラウザ
HTML
<html>
<body>
<div id="container">
<img src="your-image.jpg">
</div>
</body>
</html>
CSS
html,body,#container {
height:100%;
}
#container {
width:100%;
position:relative;
}
#container > img {
width:100%;
max-width:400px; /* real image width */
position:absolute;
top:0; left:0; right:0; bottom:0;
margin:auto;
}
デモ
2. display:table;
+ display:table-cell;
+vertical-align:middle;
サポート: IE8+、その他すべてのブラウザー - IE7 フォールバックあり (ソース 1 ) ( 2 ) ( 3 )
HTML
<html>
<body>
<div id="container">
<span> /* it's important that you use a span here
not a div, or the IE7 fallback won't work */
<img src="your-image.jpg">
</span>
</div>
</body>
</html>
CSS
html,body,#container {
height:100%;
}
#container {
width:100%;
display:table;
*display:block; /* IE7 */
}
#container > span {
display:table-cell;
*display:inline-block; /* IE7 */
vertical-align:middle;
text-align:center;
}
#container > span > img {
width:100%;
max-width:400px; /* real image width */
}
デモ
3.background-size:contain;
サポート: IE9+、その他すべてのブラウザー - ベンダー プレフィックス付き (ソース 1 ) ( 2 )
HTML
<html>
<body>
<div id="container"></div>
</body>
</html>
CSS
html,body,#container {
height:100%;
}
#container {
margin:0 auto;
max-width:400px; /* real image width */
background:url(your-image.jpg) 50% 50% no-repeat;
background-size:contain;
}
デモ
IE8 のレンダリング方法height:auto;
には注意してください。比率が維持されない場合があります。
編集: 「画像の縦横比を調整せずに」と書いていることに気づきました。本当に比率を保ちたくないのなら、その方が簡単です...しかし、本当にそれを意味しますか?