HTML と CSS だけを使用してレイアウトを作成しようとしているので、Javascript を使用してレイアウトを行うという追加の複雑さはありません。
以下のレイアウトは、ヘッダー、メイン コンテンツ、フッターの 3 つの部分で構成されています。
ヘッダーとフッターは同じ高さで、常に表示されている必要があります。サイズを変更すると、ヘッダー、コンテンツ、およびフッターは、いくつかの例外を除いて、それに応じて拡大/縮小する必要があります。まず、メイン コンテンツの最大高さに達すると、メイン コンテンツはそれ以上拡大されず、代わりにヘッダーとフッターだけが拡大されます。第 2 に、メイン コンテンツの最小の高さに達すると、どのセクションも縮小されなくなり、ビューはスクロール可能になります。
メイン コンテンツに関しては、画面の下部にあるビューポートのメイン スクロールバーで水平方向にスクロールできますが、ヘッダーとフッターは所定の位置に留まります。
これまでのところ、ビューポート全体を埋める絶対配置のコンテナー div を介して水平方向にスクロール可能なメイン部分を実現する方法を理解しましたが、どの要素の垂直方向のサイズも把握できないようです。私が考えることができる唯一の方法は、on resize イベントにフックすることです。