編集:ソリューションを改善しました。こちらを参照してください: https://stackoverflow.com/a/34774905/1663572
画像を正方形(または何でも)に合わせて中央に配置しようとしたときに見つけたこのソリューションを使用しています。padding-bottom と高さ 0 をコンテナに設定すると、固定比率で反応するようになります。
IE9 以降で動作します。IE8 以下では、いくつかの CSS ハックが必要です。
HTML
.container {
height: 0;
padding-bottom: 100%; /* Or 75% for 4:3 aspect ratio */
position: relative;
overflow: hidden;
}
.container img {
display: inline-block;
max-width: 90%; /* You can use different numbers for max-width and max-height! */
max-height: 75%;
width: auto;
height: auto;
position: absolute;
left: 50%; /* This sets left top corner of the image to the center of the block... */
top: 50%; /* This can be set also to bottom: 0; for aligning image to bottom line. Only translateX is used then. */
-webkit-transform: translate(-50%,-50%); /* ...and this moves the image 50 % of its width and height back. */
-ms-transform: translate(-50%,-50%);
-o-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
/* Fallback for IE8 */
@media all\0 {
.container img {
margin: auto;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
}
ここで試してみてください:http://jsfiddle.net/thiemeljiri/uhdm4fce/4/
注意:ブートストラップを使用している場合は、クラス .container を別のものに変更してください。