[解決済み] フルハイトのアプリでフレックスボックスと垂直スクロールを組み合わせるにはどうすればよいですか?
質問
フレックスボックスを使ってフルハイトのアプリを使いたいのですが、どうすればいいですか?古いフレックスボックスのレイアウトモジュールを使って欲しいものが見つかりました(
display: box;
など)を使って欲しいものがありましたので、このリンクで紹介します。
CSS3 Flexbox フルハイトアプリとオーバーフロー
これは、旧バージョンのフレックスボックス CSS プロパティにしか対応していないブラウザに対する正しい解決策です。
新しいフレックスボックス プロパティを使用してみたい場合は、ハックとして記載されている同じリンクの 2 番目の解決策を使用してみます:コンテナに
height: 0px;
. これは、垂直スクロールを表示するようになります。
他の問題を引き起こすし、解決策というより回避策なので、私はあまり好きではありません。
html, body {
height: 100%;
}
#container {
display: flex;
flex-direction: column;
height: 100%;
}
#container article {
flex: 1 1 auto;
overflow-y: scroll;
}
#container header {
background-color: gray;
}
#container footer {
background-color: gray;
}
<section id="container" >
<header id="header" >This is a header</header>
<article id="content" >
This is the content that
<br />
With a lot of lines.
<br />
With a lot of lines.
<br />
This is the content that
<br />
With a lot of lines.
<br />
<br />
This is the content that
<br />
With a lot of lines.
<br />
<br />
This is the content that
<br />
With a lot of lines.
<br />
</article>
<footer id="footer" >This is a footer</footer>
</section>
JSFiddleもベースの例で用意しました。 http://jsfiddle.net/ch7n6/
フルハイトのHTMLサイトですが、content要素のflexboxプロパティの関係でフッターが一番下に来ています。CSSコードと結果の間にあるバーを動かして、異なる高さをシミュレートすることをお勧めします。
どのように解決するのですか?
おかげさまで https://stackoverflow.com/users/1652962/cimmanon のおかげで、答えがわかりました。
解決策は、垂直スクロール可能な要素に高さを設定することです。例えば
#container article {
flex: 1 1 auto;
overflow-y: auto;
height: 0px;
}
要素
は
は高さを持ちます。
ミニハイト
を使用することができます。
height: 100px;
と全く同じであることを
min-height: 100px;
#container article {
flex: 1 1 auto;
overflow-y: auto;
height: 100px; /* == min-height: 100px*/
}
というわけで、もしあなたが
min-height
を縦スクロールで表示させたい場合に最適です。
#container article {
flex: 1 1 auto;
overflow-y: auto;
min-height: 100px;
}
記事を見るのに十分なスペースがない場合に、完全な縦スクロールをしたいだけなら。
#container article {
flex: 1 1 auto;
overflow-y: auto;
min-height: 0px;
}
最後のコードです。 http://jsfiddle.net/ch7n6/867/
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] 同じ要素にbackground-imageとCSS3グラデーションを組み合わせるにはどうすればよいですか?
-
[解決済み] divの内容を下に揃える方法
-
[解決済み] Bootstrapの列をすべて同じ高さにするにはどうしたらいいですか?
-
[解決済み] CSS Flexboxで、"justify-items "と "justify-self "プロパティはなぜないのですか?
-
[解決済み] 検索エンジンはAngularJSアプリケーションをどのように扱っているのか?
-
[解決済み] Flexboxの子の高さを親の高さの100%にするには?
-
[解決済み] HTML5でminlengthの検証属性はありますか?
-
[解決済み】display:flexを使って残りの縦幅をCSSで埋める。
-
[解決済み] フレックスボックスレイアウトで縦方向のスペースを100%確保するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ローカルリソースのロードが許可されていない問題を解決する
-
document.forms 使用方法
-
[解決済み] 画像の横のテキストを縦に揃える?
-
[解決済み] HTMLにPDFを埋め込むおすすめの方法とは?
-
[解決済み] HTMLの "role "属性は何のためにあるのですか?
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み] フレックスアイテムを右寄せにするには?
-
[解決済み] テーブル内のテキストアラインクラス
-
[解決済み] Flexboxの子の高さを親の高さの100%にするには?
-
[解決済み] div内の画像の下に余分なスペースがある