いつも表示されるはずのヘッダーコンポーネントがある私のSPA用のシンプルなレイアウトを作成したいと思います。フッターコンポーネントは、画面の下部にあるか、メインコンテンツコンポーネントが画面よりも大きい場合は、コンテンツコンポーネントの下にある必要があります。そして、画面がコンテンツより大きい場合、残りのスペースを取得する必要があるメインのコンテンツコンポーネントは、フッターコンポーネントが下部に表示されるようにします。メインコンテナが水平のときにフレキシブルコンテナが収縮フレックスボックス
現在、私はこのcodepenのレイアウトを再現しました。しかし、codepenの結果ウィンドウを十分に縮小すると、フッターコンポーネントがその上にあるため、Test2テキストが表示されないポイントに到達します。私が期待する動作は、Test2のテキストを見ることができ、フッターコンポーネントまでスクロールできることです。
コンテンツコンポーネントがflex-direction: row
のフレックスボックスではない場合に機能します。なぜこれがうまくいかないのでしょうか?
私のSPAではReactを使用していますので、これにはJavaScriptを使用したくありません。
* {
padding: 0;
margin: 0;
font-size: 2rem;
}
.page {
display: flex;
flex-direction: column;
height: 100vh;
width: 100%;
background: yellow;
}
.container {
display: flex;
flex-direction: column;
flex: 1;
overflow: scroll;
}
.main {
flex: 1;
background: red;
display: flex;
flex-direction: row;
min-height: 30px;
}
.test {
display: block;
}
.footer {
background: green;
}
<div class="page">
<div class="header">Header</div>
<div class="container">
<div class="main">
Main
<div class="test">Test1<br />Test2<br/></div>
</div>
<div class="footer">Footer</div>
</div>
</div>