Это работает. Смотрите это jsfiddle .
Вы запускаете код в готовом блоке jQuery? Кроме того, если вы хотите сохранить это соотношение высоты с помощью изменения размера текста из браузера «масштабирования», вам нужно будет реагировать на события изменения размера. Если в какой-то момент вы сделаете так, чтобы ваш content_dynamic
div имел ширину auto, вам также потребуется изменить размер боковой панели div при изменении высоты content_dynamic
div (опять же, реагируя на событие resize).
jQuery позволяет только присоединять к событию изменения размера на уровне окна, но есть плагины, которые упрощают его преобразование в событие изменения размера на уровне div.
HTML:
<div id="leftnav_static"></div>
<div id="content_dynamic">Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Etiam iaculis ornare
sapien sit amet condimentum. Aliquam a diam vel eros
tristique fermentum vitae at turpis. Etiam fringilla,
enim nec viverra interdum, metus tortor vehicula mauris,
in luctus felis massa ut nulla. Proin et leo vel nunc ornare
pulvinar. Vestibulum quis lectus vel arcu tristique aliquet.
Fusce malesuada nisi non ante egestas semper.
</div>
CSS:
#leftnav_static {
padding:5px;
margin-top: 5px;
margin-left: 5px;
height: 1000px;
width: 195px;
font-size: 1.35em;
float:left;
background-color: blue;
}
#content_dynamic {
margin-top: 5px;
margin-left: 215px;
height: auto;
width: 700px;
padding: 5px;
background-color: red;
font-size: 1em;
line-height:1.6em;
//white-space:nowrap; //This makes the content div only one line,
//I commented this out to make the sizing clear.
}
JavaScript : (при условии, что библиотека jQuery уже загружена)
$(function() {
$('#leftnav_static').height($("#content_dynamic").height());
});
Примечание: Преимущество искусственных столбцов или других чистых CSS-подходов заключается в том, что вам не нужно беспокоиться об увеличении или изменении размера - и ваш сайт будет работать для людей, у которых JavaScript включен выкл.