Есть хорошее решение, но для современных браузеров
ResizeSensor. Базируется на
CSS Element Queries. Но стоит упомянуть, что любой вызов типа `element.offsetHeight` вызывает rendering страницы, что может влиять на производительность прорисовки в браузере. Чтобы оптимизировать это дело, можно воспользоваться
will-change, но нужно быть аккуратным и использовать это свойство с умом.
UPD (14-03-2019 14:16): подробнее о вызовах, которые вызывают reflow страницы можно почитать
здесь