div
左と右の 2 つの列を持つレイアウトがありますdiv
。
右側にはdiv
灰色の がありbackground-color
、これをユーザーのブラウザ ウィンドウの高さに応じて垂直方向に拡張する必要があります。現在、 はbackground-color
その の最後のコンテンツで終わっていますdiv
。
height:100%
、、min-height:100%;
などを試しました。
ベストアンサー1
CSS 3 には次のような測定単位がいくつかあります。
ビューポート パーセンテージ(またはビューポート相対)の長さ
ビューポート パーセンテージの長さとは何ですか?
上記のリンクされた W3 候補推奨事項から:
ビューポートのパーセンテージの長さは、初期包含ブロックのサイズに相対的です。初期包含ブロックの高さまたは幅が変更されると、それに応じて拡大縮小されます。
これらの単位は、vh
(ビューポートの高さ)、vw
(ビューポートの幅)、vmin
(ビューポートの最小長)、vmax
(ビューポートの最大長) です。
これを使用して、区切り線をブラウザの高さいっぱいにするにはどうすればよいでしょうか?
この質問では、 を利用できますvh
。1vh
はビューポートの高さの 1% に等しくなります。つまり、100vh
要素が DOM ツリーのどこに配置されているかに関係なく、 はブラウザ ウィンドウの高さに等しくなります。
html
<div></div>
CS
div {
height: 100vh;
}
必要なのは文字通りこれだけです。JSFiddle の例これを使用中。
これらの新しい単位をサポートするブラウザはどれですか?
これは現在、Opera Miniを除くすべての最新の主要ブラウザでサポートされています。使ってもいいですか...さらなるサポートのために。
これを複数の列でどのように使用できますか?
左と右の仕切りがあるこの質問の場合、JSFiddle の例vh
と の両方を含む 2 列のレイアウトを示していますvw
。
100vh
とどう違うのですか100%
?
次のレイアウトを例に挙げます。
<body style="height: 100%">
<div style="height: 200px">
<p style="height: 100%; display: block;">Hello, world!</p>
</div>
</body>
ここでタグp
は高さ100%に設定されていますが、タグに含まれる要素のdiv
高さは200ピクセルなので、200ピクセルの100%は高さの100%ではなく200ピクセルになります。代わりにbody
を使用すると、タグは高さに関係なく100%の高さになります。これを見てみましょう。100vh
p
body
div
付属のJSFiddle違いが簡単にわかります!