2012-04-08 164 views
3

我的頁面中有一個DIV元素,當窗口調整大小時,我想要調整其大小,但保持寬高比爲正方形。我想將寬度設置爲瀏覽器寬度的50%,高度等於寬度。我怎樣才能做到這一點?在調整窗口大小時調整DIV大小但保持長寬比

如果解決方案需要JavaScript,那很好,但我不想使用jQuery。

回答

1

我不知道,你可以讓一個屬性(高度)等於CSS其他財產(寬度)......嗯,至少在CSS 2

但你當然可以在JavaScript中做到這一點。

<div id = "myDiv"></div> 
<script> 
    document.onresize = function() { 
     var element = document.getElementById('myDiv');  // the element 
     var size = Math.floor(window.innerWidth/2) + 'px'; // 50% window width 

     element.style.width = size; // set the width 
     element.style.height = size; // set the height 
    }; 
</script> 

請注意,window.innerWidth屬性不存在於IE中。在那裏,你必須使用document.documentElement.clientWidth

+0

謝謝,但這個不起作用 – Joey 2012-04-08 04:08:37

+0

我承認,我測試了這個只在歌劇。你使用什麼瀏覽器來幫助我調試? – Imp 2012-04-08 04:21:56

+0

除Opera之外的所有哈哈......我認爲這是因爲您在最後兩行中引用了div名稱而不是變量名稱。否則,它會工作 – Joey 2012-04-08 04:22:59

1

您可以將寬度設置爲CSS中窗口的50% 你只需要調整高度 -

window.onresize=function(){ 
    var who= document.getElementById('divtoresize'); 
    who.style.height=who.offsetWidth+'px'; 
}