レイアウトの設計中にhtml, body
要素をに設定しheight
ました100%
が、場合によっては失敗するので、何を使用する必要がありますか?
html, body {
height: 100%;
}
または
html, body {
min-height: 100%;
}
ええと、これは意見に基づくものではありません。それぞれの方法には独自の欠陥があるので、推奨される方法とその理由は何ですか?
回答:
あなたはに背景画像を適用しようとしている場合html
と、body
ブラウザウィンドウ全体埋めることに、どちらもありません。代わりにこれを使用してください:
html {
height: 100%;
}
body {
min-height: 100%;
}
私の推論はここにあります(この方法で背景を適用する方法を全体的に説明します):
ところで、あなたは指定する必要が理由
height
とmin-height
にhtml
とbody
もない要素は、任意の固有の高さを持っているので、それぞれがあります。height: auto
デフォルトでは両方ともです。高さが100%のビューポートであるためheight: 100%
、ビューポートから取得され、body
コンテンツのスクロールを可能にするために最小限に適用されます。
最初の方法は、height: 100%
両方で使用しbody
て、ビューポートの高さを超えて拡大し始めると、コンテンツが拡大するのを防ぎます。技術的には、これによってコンテンツのスクロールが妨げられることはありませんbody
が、折り目の下にギャップが残るため、通常は望ましくありません。
2番目の方法は、min-height: 100%
両方で使用しますが、明示的ながない限り、パーセンテージを使用しても機能しないため、のbody
高さ全体に拡張するhtml
ことmin-height
はありません。body
html
height
完全を期すために、CSS2.1のセクション10にはすべての詳細が含まれていますが、これは非常に複雑な読み物なので、ここで説明した以外に興味がない場合はスキップできます。
html
要素にはoverflow:visible
デフォルトであるため、ブラウザの動作によってスクロールバーが表示され、ドキュメントの通常のフロー全体を表示できると思います。
overflow: auto
は、スクロールバーの出所であるビューポートに変換されます。これはセクション11で説明されています:w3.org/TR/CSS21/visufx.html
ビューポートの高さ(vh
)単位を使用できます。
body {
min-height: 100vh;
}
親の高さではなく画面を基準にしているため、HTMLの高さは必要ありません:100%。
height: 100% is taken from the viewport, then applied to body as a minimum to allow for scrolling of content
簡単で簡単な解決策...ありがとう//