最初のアプローチ:CSSのみ(望ましくない)
.gallery-elements .gallery-image-big {
position: relative;
height: 230px; /* Setting fixed height will not keep an aspect ratio */
overflow: hidden; /* Hide the images additional height */
}
.gallery-elements .gallery-image-big img {
position: absolute; /* Centering images and keeping their aspect ratio */
left: 0;
right: 0;
top: 0;
margin: auto;
display: block;
max-width: 100%;
max-height: 600px;
}
第二のアプローチ:jQueryとCSS(信頼性がなく、完璧ではない)
CSS:中央絶対位置で再び画像、および隠されたにオーバーフローを設定します含まれているdivの
.gallery-elements .gallery-image-big {
position: relative;
overflow: hidden;
}
.gallery-elements .gallery-image-big img {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
display: block;
margin: auto;
max-width: 100%;
}
jQueryの:$(ドキュメント).ready()関数の最後に、あなたのスクリプトにこれを追加します。
var sliderw = $('.gallery-image-big').width();
$('.gallery-image-big').css({
'height': sliderw/1.777
});
これは幅に応じて高さを設定 - の結果であります幅を1.777で割ったものが、今日使用されているアスペクト比16:9になります。
http://jshint.com/でチェックすると、セミコロンがありませんでした。このnew demoには固定されています。
私はこれを「完璧ではない」と説明しています。これは、関数が1回だけ実行されるためです。つまり、ウィンドウのサイズが変更されてもアスペクト比は保持されません。
さらに、親divの幅を1280px、最大幅を100%に設定しました。私はあなたが1280pxより大きい場合を除いて、全幅にしたいと思っていたので、デモでこれらの2つの値を入れ替えました。
IEのサポートを計画している場合は、imgでパーセントの 'max-width'を使用せず、このコードを親に適用し、画像には' inherit'の値を使用してください。 –
@LeoNapoleonありがとう、しかし、それはIE8(将来可能性があります)をサポートする予定はありません、と私は継承値を知って、とにかく感謝! – Cheshire
これは参考になるでしょう:http://johnpolacek.github.io/imagefill.js/ – Julia