まず、あなたは.mainHeader
クラスのposition: fixed
を設定しています。これにより、ズームレベルやスクロール位置に関係なく、常にビューポートの同じ位置に要素が表示されます。
これを削除します。position: fixed
と対応するtop
とleft
のプロパティ。
あなたは現在、その親要素の100%
にheight
を設定しているので、それはいつもと同じくらい大きいでしょう。同様にwidth
とvw
のために -
を使用すると、ビューポートの高さ(
vh
)の割合に相当
vh
ユニットを、使用することができ、ビューポートの(可視ページ領域)の高さを利用して高さを設定します。
ので、ビューポートの高さの100%に要素の高さを設定するには、単に行うことができます。
height: 100vh;
EDITから注:vh
ユニットはによってサポートされていません。すべてブラウザ(私はいくつかを見つけました、私を信頼してください)。だから私は互換性を防ぐために、vh
よりも上のフォールバック値を設定することをお勧めします。たとえば:
height: 500px; // fallback value if browser doesn't support vh
height: 100vh; // this value overrides the above one, if the browser supports vh
あなたは、あなたが要素の周りに空白を見ている場合は、body
または他の要素からpadding
および/またはmargin
を削除する必要があります。適切な効果を得るために遊びましょう。
body {
padding: 0;
margin: 0;
... other properties
}
この動作のJSFiddleを見つけてください:https://jsfiddle.net/s49p6Laj/
サンプルコード:
HTML
<div class="header">
I fill the viewport!
</div>
<div class="other-stuff">
// All your other content here...
</div>
たとえば
一見
CSS
// Set the body's margin and padding to 0
body {
margin: 0;
padding: 0;
}
// Make the container fill the viewport
.header{
width: 100%;
height: 100vh;
、あなたはそれ 'ポジション持っているので、それはです:fixed'を、したがって、divが関係なく、スクロールの、同じ位置に常にあります。私はそれとそれに続く 'left'と' top'宣言を削除します。私の頭の上から外す - 最初のサイズがビューポートを埋めるようにしたい場合は、常に 'height'として' 100vh'を使うことができます。 –
私が位置を取り除いたとき:固定されていて、要素の周りに白い隙間ができます。 – user6395724
'body 'や他の要素の余白/マージンとは*可能でしょうか? **あなたはそれを '0'または** 2)に設定することができます**あなたはあなたのCSSが何であるかわからない*私は思うに' box-sizing:border-box'を適用することができます* 'body' - もっと良いことに、あなたはそれをすべてに適用することができます(CSSの' * ') - 長期的にはもっと簡単になります。 FWIW: 'border-box 'を設定すると、ボックスのモデルに測定内容、パディング、境界線が含まれますが、マージンは含まれません。現在、あなたがこれを使用していない可能性があります、あなたの体のパディング、または別の要素を考慮に入れていません:) –