よく遭遇する問題: 下部の要素を「下部に貼り付ける」効果を CSS でどのように実現するか。この記事では、「下部に貼り付ける」という点について、2 つの解釈をしています。
「下部吸収」効果の実現に関しては、スティッキーフッターレイアウトの方が馴染みがあるかもしれませんが、この方法は主に 2 番目の状況を解決するために使用されます。この記事では、次の 3 つのソリューションを使用して、それぞれ上記の 2 つの効果を実現し、実装の原則とその適用性について簡単に説明します。 ラッパーは、コンテンツと固定された下部領域 (フッター) の 2 つの部分で構成されます。 HTML設定: <!-- wrapper はコンテンツとフッターを囲む親コンテナーです--></div> <div class="wrapper"> <div class="content"> <ul> <!-- ページのメインコンテンツ領域--></div> <li>1. これがコンテンツです、これがコンテンツです…</li> <li>2. これがコンテンツです、これがコンテンツです…</li> <li>3. これがコンテンツです、これがコンテンツです…</li> <li>4. これがコンテンツです、これがコンテンツです…</li> <li>5. これがコンテンツです、これがコンテンツです…</li> <li>6. これがコンテンツです、これがコンテンツです…</li> <li>7. これがコンテンツです、これがコンテンツです…</li> <li>8. これがコンテンツです、これがコンテンツです…</li> <li>9. これがコンテンツです、これがコンテンツです…</li> </ul> </div> <div class="footer"> <!-- 吸収する必要がある領域 --> 下部ボタン</div> </div> 注: 以下のソリューションの実装はこのHTML構造に基づいています 解決策1: 位置を使用して固定する要素を配置する 原則分析:
適用可能なシナリオ: 使用されるプロパティは、すべてのブラウザで成熟した形で実装されています。2 番目と 3 番目のソリューションと比較すると、この方法が最も推奨されます。 以下のシナリオには適用されません: 配置された (固定された) 領域にテキスト ボックスがある場合、iOS システムでは、テキスト ボックスが入力メソッドを呼び出すと、配置された領域がポップアップし、下部から少し離れた位置に表示されるためです。 ページの下部に固定 デモ: https://codepen.io/hu0950/pen/yRVvQL CSS設定: html, 体 高さ 100% .ラッパー 相対位置 // キー box-sizing border-box min-height 100% // キー padding-bottom 100px // この値はボタン ul の高さ以上に設定されます リストスタイルなし 李 高さ 100ピクセル 背景ライトブルー .フッター 位置絶対 // キー下 0 左 0 右0 height 100px // 固定の高さの背景をオレンジに設定 表示ウィンドウの下部に固定 デモ: https://codepen.io/hu0950/pen/NObMPb?editors=1100#0 CSS設定: html, 体 高さ 100% .ラッパー ボックスサイズ ボーダーボックス min-height 100% // キー padding-bottom 100px // この値はボタン ul の高さ以上に設定されます リストスタイル: なし 李 高さ 100ピクセル 背景ライトブルー .フッター 位置固定 // ボタンを可視ウィンドウの下部に固定します bottom 0 左 0 右0 height 100px // 固定の高さの背景をオレンジに設定 解決策2: フレックスボックスレイアウトを使用する デモ: https://codepen.io/hu0950/pen/bmBMMr 適用可能なシナリオ: フレックス レイアウトは構造がシンプルでコードが簡潔です。ただし、flex には互換性の問題があるので、このレイアウト方法を使用する場合は注意が必要です。 ページ下部に固定する効果を実現する場合、この柔軟なレイアウトの考え方が採用されます。フッターの高さを定義することなく、下部の固定領域の高さを柔軟に設定できます。これもこの方法の利点です。 ページの下部に固定 原則分析:
CSS設定: html, 体 高さ 100% .ラッパー min-height 100% // キー display flex // キー flex-direction column // キー .content flex 1 //キー ul リストスタイルなし 李 高さ 100ピクセル 背景ライトブルー // 高さは変更せずにそのままにしておくことができます。footer パディング 20px 背景オレンジ 表示ウィンドウの下部に固定 原則分析: 上記(ページ下部のソリューション 2 - 修正済みでの分析)に加えて、次の点にも注意する必要があります。
CSS設定: html, 体 高さ 100% .ラッパー display flex // キー min-height 100% // キー padding-bottom 62px // この値はボタンの高さ以上に設定されます flex-direction column // キー .content flex 1 //キー ul リストスタイル: なし 李 高さ 100ピクセル 背景ライトブルー .フッター 位置固定 // キー左 0 右0 下0 パディング 20px 背景オレンジ 解決策3: calcを使用する 適用可能なシナリオ このソリューションでは追加のスタイル処理は必要なく、コードも簡潔ですが、残念ながらモバイル端末の下位バージョンシステムは calc 属性と互換性がありません。 ページの下部で修正されました デモ: https://codepen.io/hu0950/pen/ePBjdB 原則分析: ラッパーは、コンテンツが少ないときにコンテンツが画面全体を埋め尽くすことを期待して、min-height: 100% に設定されています。同時に、コンテンツの高さが画面よりも高くなった場合、ラッパーの高さはコンテンツの高さに合わせて増加します。このようにして、フッターがコンテンツの下に順番に配置されることが保証されます。 CSS設定: html, 体 高さ 100% .ラッパー min-height 100% //キー: height ではなく min-height 。コンテンツ min-height calc(100% - 100px) //キー: height ではなく min-height ウル リストスタイルなし 李 高さ 100ピクセル 背景ライトブルー // 固定高さ.footer 高さ 100ピクセル 背景オレンジ 表示ウィンドウの下部に固定 デモ: https://codepen.io/hu0950/pen/bmBjqb?editors=1100#0 原則分析:
CSS設定: html, 体、 .ラッパー 高さ 100% 。コンテンツ height calc(100% - 100px) // キー: min-height ではなく height を使用する オーバーフロースクロール // キー ul リストスタイルなし 李 高さ 100ピクセル 背景ライトブルー .フッター 位置固定 左 0 右0 下0 高さ 100ピクセル 背景オレンジ 最後に 筆者は、プロジェクトで上記の実装方式を試し、デバッグと検証を容易にするために各方式のデモも提供しました。各実装方法には、フッターの高さを固定する必要がある、モバイル端末の低バージョンシステムには適していないなどの制限的な問題があります。特定のニーズに応じて最適なソリューションを選択できます。 最近のプロジェクトのニーズにより、インターネットで多くの情報を参照しましたが、すぐに使用できるソリューションを見つけることができませんでした。実装原則の分析も不足しているため、独自の要約と継続的なテストを行った後、この記事を書きました。友人たちの役に立つと嬉しいです。私にとって初めての金採掘体験です。皆さんの励ましを頂ければ幸いです。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: MySQL マスタースレーブステータスチェックの実装
序文リバース プロキシは、Web 経由で行われたリクエスト (http と https の両方) を...
Linux に MySQL をインストールする方法をオンラインで検索すると、多くの方法が表示されまし...
序文以前、Docker の 2375 Remote API を有効にしていました。会社のセキュリティ...
同僚から助けを求められました。バックエンド システムへのログインは成功したものの、システムには正常に...
目次序文iframeはサンドボックスを実装しますdiffメソッドを使用したサンドボックスの実装プロキ...
目次キャンバス関連文書エフェクト画像表示ケースの完全なコード親コンポーネントコードサブコンポーネント...
目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...
1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...
1 問題の説明: 1.1 Windows 10 に VMware を初めてインストールする場合、また...
この記事では、簡単な虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な内...
CSS 疑似要素を使用して要素を制御する場合、一部の要素のスタイルを変更する必要があることがよくあり...
JavaとMysql 8.0.18バージョンの接続方法については、参考までに具体的な内容は以下のとお...
前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...
電話Amap API を呼び出す方法は? Amap が https://lbs.amap.com/a...
MySQL でテーブルスペースの断片化を解消する詳細な例断片化の原因(1)テーブルのストレージは断片...