2012-09-22 48 views

回答

3

你可以使用這樣的事情(使用jQuery):

<script language="jscript"> 
    $(function(){ 
     ratio=$('#centerdiv').width()/$('#centerdiv').height(); 
     rePos=function(){ 
      if($('#container').innerHeight()*ratio>$('#container').innerWidth()){ 
       $('#centerdiv').width($('#container').innerWidth()); 
       $('#centerdiv').height($('#centerdiv').width()/ratio); 
       $('#centerdiv').offset({left:0,top:($('#container').innerHeight()-$('#centerdiv').outerHeight(true))/2}); 
      } 
      else{ 
       $('#centerdiv').height($('#container').innerHeight()); 
       $('#centerdiv').width($('#centerdiv').height()*ratio); 
       $('#centerdiv').offset({left:($('#container').innerWidth()-$('#centerdiv').outerWidth(true))/2,top:0}); 
      } 
     }; 
     $(window).resize(rePos); 
     rePos(); 
    }); 
    </script> 
    <div id="container" style="position:absolute;top:0;bottom:0;left:0;right:0"> 
    <div id="centerdiv" style="position:absolute;width:150px;height:100px;background-color:red;padding:0;border:0;margin:0"></div> 
+0

你爲什麼要做$(window).resize(function(){resPos();});而不是$(windows).resize(resPos); ? – zehelvion

+0

$(windows).resize(resPos);更好。 – aalmeida

+0

這絕對是完美的,謝謝! – Supertod

0

一般的想法會是這樣的

HTML頭:

<meta name="viewport" content="width=device-width"> 

和身體:

<div class="container"> 
    <img src="whatever.jpg"/> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> 
</div> 

CSS

.container { 
    width: 90%; 
    max-width: 480px; 
    background: #900; 
    margin: 1em auto;  
} 
.container img { 
    display: block; 
    width: 100%; 
    margin: 1em auto;  
} 

基本上,div容器佔據了90%的可用寬度的,最多的480像素,並且在容器內的IMG佔用所有可用的空間給它,因此調整大小。顯然,所有的細節都是任意的,完全取決於你的特定設計。我設置了一個fiddle,您可以在其中看到它的實際操作。

編輯:忘記了視口元標記,它保留了移動設備上的東西。

+0

感謝。在水平調整大小時適用,但在瀏覽器垂直調整大小時不起作用。有沒有辦法可以垂直完成呢? – Supertod

相關問題