第一種方法:只有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:添加到您的腳本,在$(文件)結束。就緒()函數:
var sliderw = $('.gallery-image-big').width();
$('.gallery-image-big').css({
'height': sliderw/1.777
});
這將根據寬度高度 - 是的結果寬度除以1.777導致16:9的寬高比,這是現今最常用的。
檢查http://jshint.com/,你有一些缺少分號。這new demo已修復它們。
我將此描述爲「不完美」,因爲它只會運行一次該功能,這意味着當調整窗口大小時,縱橫比不會保留。
除此之外,您已將父div的寬度設置爲1280px,並將最大寬度設置爲100%。我假設你想要全寬,除非它大於1280像素,因此我在演示中交換了這兩個值。
只是一個說明 - 如果你打算支持IE,不要在你的img上使用百分比'max-width',相反,將這個代碼應用到它的父代,圖像使用'inherit'的值。 –
@LeoNapoleon謝謝,但目前它沒有計劃支持IE8(可能在未來),並且我知道繼承的價值,謝謝! – Cheshire
也許這將是有益的:http://johnpolacek.github.io/imagefill.js/ – Julia