いつもコンテナの真ん中にあるボックス(この場合はフレックスアイテム)を作りたいと思います。そのボックスには、ヘッダー、フッター、およびコンテンツセクションがあります。コンテンツのサイズが高すぎる場合は、コンテンツセクションをスクロール可能にします。ヘッダーとフッターは常に表示され、ボックスは常にそのコンテナにとどまるべきです。ここでフレックスボックス:スクロールフッター付きのスクロール可能なコンテンツ
は私が書くことができたものです:
HTML
<div class="flex-container">
<div class="flex-item">
<header>Header</header>
<div class="content">
A
<br>B
<br>C
<br>D
<br>E
<br>F
<br>G
<br>H
<br>I
<br>J
<br>K
</div>
<footer>Footer</footer>
</div>
</div>
CSS
body {
margin: 120px;
}
.flex-container {
display: flex;
width: 200px;
height: 200px; /* We can assume that the container's height is hardcoded in this example, but the end solution should work even if this value is changed*/
border: 1px solid black;
justify-content: center;
}
.flex-item {
box-sizing: border-box;
width: 150px;
border: 5px solid blue;
align-self: center;
background-color: red;
display: flex;
flex-flow: column;
max-height: 100%;
}
.content {
/* It should be possible to scroll this element when it get too big in height*/
background-color: grey;
flex: 1;
}
は、コードがJSFiddleでホストされている:https://jsfiddle.net/9fduhpev/3/
ここでは、私が欲しいものです:
感謝を。期待したよりも簡単だった。 :D – Jarzka
実際、私はoverflow-y:autoを使ってコンテンツが大きすぎる場合にのみスクロールバーを表示するつもりだと思います。少なくともWindowsでは「スクロール」の値はスクロールバーを常に表示します。これは私が望ましくないものです。 – Jarzka
はい、 'overflow:auto'を使うべきです。私は私の答えを更新しました。 – Rohit