ブラウザの高さを100%にしたい。CSSを使用してそれを行うことはできますか?
を設定してみましたheight: 100%
が、うまくいきません。
ページの背景色をブラウザウィンドウ全体に設定したいのですが、ページのコンテンツが少ない場合、下部に醜い白いバーが表示されます。
ブラウザの高さを100%にしたい。CSSを使用してそれを行うことはできますか?
を設定してみましたheight: 100%
が、うまくいきません。
ページの背景色をブラウザウィンドウ全体に設定したいのですが、ページのコンテンツが少ない場合、下部に醜い白いバーが表示されます。
回答:
html要素の高さも100%に設定してみてください。
html,
body {
height: 100%;
}
Bodyは動的プロパティのスケーリング方法を親(HTML)に確認するため、HTML要素にも高さを設定する必要があります。
ただし、ボディのコンテンツはおそらく動的に変更する必要があります。min-heightを100%に設定すると、この目標が達成されます。
html {
height: 100%;
}
body {
min-height: 100%;
}
body {min-height}
バージョンを使用する場合、.body-child{height: 100%}
トリックは使用できません。
html
とbody
要素の両方の高さをに設定する代わりに100%
、ビューポートのパーセンテージの長さを使用することもできます。
5.1.2。ビューポートのパーセンテージの長さ:「vw」、「vh」、「vmin」、「vmax」の単位
ビューポートのパーセンテージの長さは、最初の包含ブロックのサイズを基準にしています。最初の包含ブロックの高さまたは幅が変更されると、それらはそれに応じてスケーリングされます。
この場合、100vh
ビューポートの高さである値を使用できます。
body {
height: 100vh;
padding: 0;
}
body {
min-height: 100vh;
padding: 0;
}
これは、最新のほとんどのブラウザでサポートされています。サポートはこちらで確認できます。
margin: 0;
。
背景画像がある場合は、代わりにこれを設定する必要があります。
html{
height: 100%;
}
body {
min-height: 100%;
}
これにより、コンテンツがビューポートよりも高いときにbodyタグが引き続き成長し、下にスクロールし始めたときに背景画像が繰り返し/スクロール/何であれ続けます。
IE6をサポートする必要がある場合はheight:100%
、体のためにくさびを入れる方法を見つける必要があることを覚えておいてください。IE6はとにかくheight
同じように扱いmin-height
ます。
body{min-height: 100vh}
body { height: auto; }
、FireFoxにスクロールバーが表示されないようにする必要もあります。それ以外は、完全に動作します。
本文のマージンを維持したいが、スクロールバーは必要ない場合は、次のcssを使用します。
html { height:100%; }
body { position:absolute; top:0; bottom:0; right:0; left:0; }
設定 body {min-height:100%}
するとスクロールバーが表示されます。
http://jsbin.com/aCaDahEK/2/edit?html,outputにあるデモを参照してください。
height: auto;
にbody
スクロールバーが今ポップアップ表示するためにも句。
さまざまなシナリオをテストした後、これが最良の解決策だと思います。
html {
width: 100%;
height: 100%;
display: table;
}
body {
width: 100%;
display: table-cell;
}
html, body {
margin: 0px;
padding: 0px;
}
その中でそれは動的でありhtml
かつbody
その内容のオーバーフロー場合要素が自動的に拡張されます。これをFirefox、Chrome、IE 11の最新バージョンでテストしました。
ここで完全なフィドルを参照してください(テーブルが嫌いな場合は、divを使用するようにいつでも変更できます)。
https://jsfiddle.net/71yp4rh1/9/
そうは言っても、ここに投稿された回答にはいくつかの問題があります。
html, body {
height: 100%;
}
上記のCSSを使用すると、次のようにコンテンツがオーバーフローしても、htmlおよびbody要素が自動的に展開されません。
https://jsfiddle.net/9vyy620m/4/
スクロールすると、背景の繰り返しに気づきますか?これは、子テーブルがオーバーフローしたためにbody要素の高さが増加していないために発生しています。他のブロック要素のように展開しないのはなぜですか?よく分かりません。ブラウザはこれを正しく処理しないと思います。
html {
height: 100%;
}
body {
min-height: 100%;
}
上記のようにボディの最小高さを100%に設定すると、他の問題が発生します。この場合、次に示すように、子divまたはテーブルが高さの割合を占めるように指定することはできません。
https://jsfiddle.net/aq74v2v7/4/
これが誰かを助けることを願っています。ブラウザはこれを間違って処理していると思います。子供がオーバーフローした場合、体の高さは自動的に大きくなるように調整されると思います。ただし、100%の高さと100%の幅を使用する場合、これは発生しないようです。
height: 100vh
解決策もないではありません。最上位のコンテナーを100vh
高く設定すると100vw
、コンテナーにスクロールバーがある場合に問題が発生する可能性があります-コンテナーは本来よりも大きくなります(スクロールバーが不必要に表示される可能性があります)。またheight: 100vh
、新しいAndroidデバイス(例:Xiaomi Mi 9とAndroid 9)で問題が発生しました。コンテナーが画面自体よりも大きくなり、ドキュメントの本文に不要な垂直スクロールバーが表示されます。
文字通り、私が使用するすべてのCSSファイルの最初に使用するものは次のとおりです。
html, body{
margin: 0;
padding: 0;
min-width: 100%;
width: 100%;
max-width: 100%;
min-height: 100%;
height: 100%;
max-height: 100%;
}
マージンを0にすると、HTML要素とBODY要素がブラウザによって自動配置されず、それらの左側または右側にスペースが確保されます。
パディング0は、ブラウザーのデフォルトのために、HTML要素とBODY要素が要素内のすべてを自動的に押し下げたりしないことを保証します。
幅と高さのバリアントは100%に設定されており、実際に自動設定されたマージンまたはパディングがあることを見込んでブラウザーがそれらのサイズを変更しないようにします。おそらくそれらは必要ありません。
私は最初の数年前にHTMLとCSSに始まったときのように、あなたが最初に与える必要がないだろう、というこのソリューションはまた、手段<div>
A margin:-8px;
は、ブラウザウィンドウの隅に収まるようにするが。
投稿する前に、他のフルスクリーンCSSプロジェクトを調べたところ、そこで使用していたのはbody{margin:0;}
他に何もないことでした。これは、これまで取り組んできた2年間で問題なく機能しました。
この詳細な回答がお役に立てば幸いです。私の目には、ブラウザがbody / html要素の左側、場合によっては上側に目に見えない境界線を設定する必要があるのはおかしいです。
width: 100%
body要素とhtml要素の考えられる目的は何ですか?はい、私は理解しています、実用的な観点からbody { margin: 0; }
は、ほとんどの場合十分であるはずです。もっと深く理解したいだけです。
クイックアップデート
html, body{
min-height:100%;
overflow:auto;
}
今日のCSSによるより良いソリューション
html, body{
min-height: 100vh;
overflow: auto;
}
overflow: auto
ここで魔法をやってください。ところで、Chromeを使用しています。
必要に応じてJSを使用することもできます
var winHeight = window.innerHeight ||
document.documentElement.clientHeight ||
document.body.clientHeight;
var pageHeight = $('body').height();
if (pageHeight < winHeight) {
$('.main-content,').css('min-height',winHeight)
}
試す
<html style="width:100%; height:100%; margin: 0; padding: 0;">
<body style="overflow:hidden; width:100%; height:100%; margin:0; padding:0;">
width: 100%
body要素とhtml要素の考えられる目的は何ですか?はい、私は理解しています、実用的な観点からbody { margin: 0; }
は、ほとんどの場合十分であるはずです。もっと深く理解したいだけです。
これを確認してください:
* {margin: 0; padding: 0;}
html, body { width: 100%; height: 100%;}
または、新しいメソッドのビューポートの高さを試してください:
html, body { width: 100vw; height: 100vh;}
ビューポート:ビューポートを使用すると、画面のコンテンツが画面の高さいっぱいに表示されます。
width: 100%
body要素とhtml要素の考えられる目的は何ですか?
独自のCSSファイルを編集して高さのルールを自分で定義したくない場合、最も一般的なCSSフレームワークは、ボディ要素がページ全体を埋めるこの問題を解決します。ビューポートのサイズ。
たとえば、Tacit CSSフレームワークはこの問題をすぐに解決します。CSSルールとクラスを定義する必要はなく、CSSファイルをHTMLに含めるだけです。
html {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
min-height: 100%;
}
html body {
min-height: 100%
}
すべての主要なブラウザーで動作します:FF、Chrome、Opera、IE9 +。背景画像とグラデーションで動作します。スクロールバーはコンテンツのニーズに応じて利用できます。
私はこれを使います
html, body{
background: #E73;
min-height: 100%;
min-height: 100vh;
overflow: auto; // <- this is needed when you resize the screen
}
<html>
<body>
</body>
</html>
ブラウザーが使用min-height: 100vh
し、何らかの理由でブラウザーが少し古いmin-height: 100%
場合は、フォールバックになります。
これoverflow: auto
は、画面のサイズを変更するときにボディとhtmlの高さを拡張する場合に必要です(たとえば、モバイルサイズに)。
CSSが1行だけの場合…これを行うことができます。
body{ height: 100vh; }
100vh
実際、iOS Safariに期待するもので
すべての答えは100%正確で、十分に説明されていますが、応答性を高めるために、何か良いことや非常に簡単なことをしました。
ここでは、要素はビューポートの100%の高さになりますが、モバイルビューの場合、縦向きビュー(モバイル)では特に見栄えがよくないため、ビューポートが小さくなると、要素は折りたたまれて互いに重なります。少し反応が遅くなるのがコードです。誰かがこれから助けを得ることを願っています。
<style>
.img_wrap{
width:100%;
background: #777;
}
.img_wrap img{
display: block;
width: 100px;
height: 100px;
padding: 50px 0px;
margin: 0 auto;
}
.img_wrap img:nth-child(2){
padding-top: 0;
}
</style>
<div class="img_wrap">
<img src="https://i.pinimg.com/originals/71/84/fc/7184fc63db0516a00e7d86900d957925.jpg" alt="">
<img src="https://i.pinimg.com/originals/71/84/fc/7184fc63db0516a00e7d86900d957925.jpg" alt="">
</div>
<script>
var windowHeight = $(window).height();
var elementHeight = $('.img_wrap').height();
if( elementHeight > windowHeight ){
$('.img_wrap').css({height:elementHeight});
}else{
$('.img_wrap').css({height:windowHeight});
}
</script>
こちらがJSfiddle Demoです。
@media all {
* {
margin: 0;
padding: 0;
}
html, body {
width: 100%;
height: 100%;
} }
width: 100%
body要素とhtml要素の考えられる目的は何ですか?はい、私は理解しています、実用的な観点からbody { margin: 0; }
は、ほとんどの場合十分であるはずです。もっと深く理解したいだけです。
CSS3には新しいメソッドがあります。
height:100vh
これにより、ビューポートが高さと100%になります。
だからあなたのコードは
body{
height:100vh;
}