min-height: 100vh;
をflexboxコンテナに適用しています。justify-content: space-around;
を使用すると、垂直スクロールバーが表示されます。
高さを強制したくはありませんが、コンテンツのサイズがビューポートよりも小さいため、スクロールバーがある理由がわかりません。
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body {
margin: 0;
padding: 0;
}
.wrapper {
min-height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-around;
}
<link href="https://necolas.github.io/normalize.css/5.0.0/normalize.css" rel="stylesheet"/>
<div class="wrapper">
<div>
<h1>min-height: 100vh;</h1>
<h2>why is there a scrollbar here?</h2>
</div>
<div>
Be sure to expand window.
<a href="#">skill one</a>
<a href="#">skill one</a>
<a href="#">skill one</a>
<a href="#">skill one</a>
</div>
</div>
Flex-growを追加することでうまくいくようです:
body {
min-height: 100vh;
display: flex;
flex-direction: column;
}
.wrapper {
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: space-around;
}
https://jsfiddle.net/uxgaaccr/2/
理由はわかりませんが、height: 100%
on .wrapper
では十分ではないようです。代わりにflex-grow
が必要です。 justify-content: space-around
からの余分な空白が高さを増していたと思います。私の推論には自信がありませんが、うまくいくようです...
上記の@Jazcashの回答に基づいて、さらに簡略化できます。
基本的に、min-height: 100vh
を親要素に適用し、display: flex
それに。 flex-grow
は必須ではありません。
https://jsfiddle.net/gkatsanos/uxgaaccr/3/
* {
box-sizing: border-box;
}
body {
min-height: 100vh;
display: flex;
}
.wrapper {
display: flex;
flex-direction: column;
justify-content: space-around;
}
<link href="https://necolas.github.io/normalize.css/5.0.0/normalize.css" rel="stylesheet"/>
<div class="wrapper">
<div>
<h1>min-height: 100vh;</h1>
<h2>why is there a scrollbar here?</h2>
</div>
<div>
Be sure to expand window.
<a href="#">skill one</a>
<a href="#">skill one</a>
<a href="#">skill one</a>
<a href="#">skill one</a>
</div>
</div>