Правильное решение - «гибкий». Прошло 3 года с момента публикации, поэтому я предполагаю, что мы можем игнорировать поддержку IE8 в пользу более современных браузеров, поддерживающих это решение.
Как многие здесь отметили, каждое предлагаемое решение сталкивается с проблемами. Из-за того, что первый элемент в области содержимого скрыт от заголовка с абсолютным позиционированием, или из области содержимого, занимающей полную высоту родительского элемента, это означает, что существует риск обрезания нижней части области содержимого, если только вы не вычтете заголовок из его общей высоты. (например, высота: calc (100% - «высота заголовка» px), что означает, что у вас есть жестко запрограммированные значения в вашем CSS ... не хорошо, или полоса прокрутки установлена на родительском уровне, что означает, что заголовок борется за это недвижимый.
Чтобы избежать этих взломанных решений, используйте нижеприведенное «гибкое» решение.
<div style="width: 200px; float: right; border: 1px solid black;
display: flex; flex-direction: column;">
<div style="width: 100%;">
<div style="width: 100%;">
I'm a header
</div>
</div>
<div style="width: 100%; height: 100%; overflow:auto;">
<div style="height:900px; background-color:lavender;">content area</div>
</div>
</div>