Я понял, как это сделать без js, хотя вам нужно использовать прозрачное изображение.
Настроить HTML-структуру, например:
<div class="rect_container"><img class="rect_image" src="rect_image.png"/>
<div class="rect">Your favorite content here</div>
</div>
Используйте прозрачный png AxB для rect_image, где AxB - соотношение сторон.
Тем временем настройте таблицу стилей, например:
.rect_container {width: 50%; position: relative;}
.rect_image {width: 100%; display: block;}
.rect {width: 100%; height: 100%; position: absolute; left: 0px; top: 0px;}
Здесь важно использовать тот факт, что изображения сохраняют свои пропорции при изменении размера в одном направлении. Между тем нам нужен полезный элемент div, поэтому мы делаем изображение отображаемым как блок, оборачиваем его в элемент div и помещаем в него абсолютно позиционированный элемент div. Я извлек этот код из чего-то более сложного, которое я на самом деле тестировал. Работает как шарм.