我肯定會不建議使用css-only解決方案。如果上傳的圖片可以有任何解決方案,甚至不是客戶端解決方案。您希望使用php腳本來保存已上傳圖片的大小調整版本並將其提供給客戶端。要麼作爲塊的背景圖像,並使用CSS(不跨瀏覽器)或作爲一個img標籤,並使用JS來調整大小。
CSS:
.myselector{
background-size: cover;
}
或JS(jQuery的):
$(function(){
var containers = $('.myselector'), w = $(window);
function onResize(){
//resize code
containers.each(function(){
var $this = $(this),
w = $this.width(),
h = $this.height(),
ratio = w/h,
$img = $('img',$this); // assuming there is only one img in each container
$img.css({'width':'auto','height':'auto'});
var iw = $img.width(), ih = $img.height(), iratio = iw/ih;
if(iratio>ratio){
$img.css({
height:'100%',
width:'auto',
marginLeft: (w-iw*(h/ih))/2
});
}
else{
$img.css({
width:'100%',
height:'auto',,
marginTop: (h-ih*(w/iw))/2
});
}
});
}
w.bind('resize',onResize);
//resize on each image load event
$('img',containers).bind('load',onResize);
onResize();
});
這裏是工作提琴:http://jsfiddle.net/kHxd2/2/
圖像的onload監聽器可能需要tweeking當緩存圖像反應在IE中呈現:http://css-tricks.com/snippets/jquery/fixing-load-in-ie-for-cached-images/
你也可能想爲罕見的非js瀏覽器設置css規則......(。myselector IMG {寬度:100%;})
編輯:容器的CSS:
.myselector{
width: 100%;
max-width: 900px;
height: 200px;
margin: auto; /* centering */
overflow: hidden;
}
看到更新撥弄:http://jsfiddle.net/kHxd2/3/
最佳解決方案是要嵌入圖像容器中,主包裝DIV和將上述css規則應用於該大容器。
下面是一些有用的代碼,以服務器端的大小調整的護理:http://www.9lessons.info/2009/03/upload-and-resize-image-with-php.html
解決方法有很多,但你可以張貼一些現有的HTML/CSS代碼PLZ? –