2012-04-08 3 views
3

У меня есть элемент DIV на моей странице, который я хочу изменить при изменении размера окна, но поддерживаю квадратное соотношение сторон. Я хочу, чтобы ширина была равна 50% ширины браузера, а высота была равна ширине. Как я могу это сделать?Измените размер DIV, но сохраните пропорции при изменении размера окна

Если для решения требуется Javascript, это нормально, но я бы предпочел не использовать jQuery.

ответ

6

Использование ширина: 50% в CSS и window.onresize событие для изменения размера. Взгляните

http://jsfiddle.net/536UJ/

+0

Спасибо, что это было прекрасно – Joey

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

+0

Признаюсь, я проверил это только Opera. Какой браузер вы используете, чтобы помочь мне отлаживать? – Imp

+0

Все, кроме Opera lol ... Я думаю, это потому, что вы указали имя div в последних двух строках вместо имени переменной. В противном случае это сработало бы – Joey

1

Вы можете установить ширину 50% окна в css; вам просто нужно настроить по высоте

window.onresize=function(){ 
    var who= document.getElementById('divtoresize'); 
    who.style.height=who.offsetWidth+'px'; 
} 
Смежные вопросы