私の状況ではbodyタグにflexを適用することができません。 bodyタグにCSSを適用せずに、同じ効果(フレックスボックスがフルスクリーンで表示されている固定ヘッダー/フッター)を達成できますか?ここに関連コードがあります。私は、私が望む効果を達成するボディCSSをコメントアウトしました。flexboxは 'body'にアクセスすることなく画面全体を満たすことができますか?
おかげで、 マット
/*html {
height: 100%;
}
body {
min-height: 100%;
display: flex;
flex-direction: column;
}
*/
.flex-body {
min-height: 100%;
display: flex;
flex-direction:column;
}
.main {
display: flex;
flex: 1 0 auto;
}
.nav {
flex: 0 0 12em;
}
.content {
flex: 1 0 auto;
display: flex;
flex-direction: column;
}
.row {
display: flex;
flex: 1 0 auto;
flex-direction: row;
}
.col {
flex: 1 0 auto;
}
/* TEMP CODE FOR THIS TEST, REMOVE FOR ACTUAL USE
*/
body {
text-align: center;
}
*{
box-shadow:inset 0px 0px 0px 1px #f00;
}
<div class="flex-body">
<header class="header">
\t <section class="content">
\t <div class="row">
\t \t <div class="col">
\t \t \t Upper Left
\t \t </div>
\t \t <div class="col">
\t \t \t Upper Middle
\t \t </div>
\t \t <div class="col">
\t \t \t Upper Right
\t \t </div>
\t </div>
\t </section>
</header>
<main class="main">
\t <nav class="nav">
\t \t Nav
\t </nav>
\t <section class="content">
\t \t <div class="row">
\t \t \t <div class="col">
\t \t \t \t Upper Left
\t \t \t </div>
\t \t \t <div class="col">
\t \t \t \t Upper Middle
\t \t \t </div>
\t \t \t <div class="col">
\t \t \t \t Upper Right
\t \t \t </div>
\t \t </div>
\t \t <div class="row">
\t \t \t Middle
\t \t </div>
\t \t <div class="row">
\t \t \t Lower
\t \t </div>
\t </section>
</main>
<footer class="footer">Footer</footer>
</div>
高さと分の高さのパーセントは、親要素が明示的な高さを持つ場合にのみ機能します。つまり、 '.flex-body {min-height:100%; } 'bodyとhtmlの高さを指定できない場合は動作しません。しかし、あなたは代わりに '100vh'を試すことができます... – CBroe
高さ:100%も高さの親を必要とするので、%を計算することができます。ここの身体は高さがありません。 'html、body {height:100%}'ここで、htmlはウィンドウのブラウザからの高さを計算します。 .flex-bodyは、この高さを高さまたは分の高さに使用できます。この場合、IEにはmin-heightの問題があることに注意してください。本文に追加する 'display:flex; flex-direction:column;'これらの2つについてはここで多くの質問 –