目次
プロジェクトの概要
初期スタイル
コンテンツ統合
ヘッダーとフッターを固定しました
調整可能なメインセクション幅
伝統的なスティッキーフッター
結論
ホームページ ウェブフロントエンド CSSチュートリアル スティッキーヘッダーとフッターにCSSグリッドを使用する方法

スティッキーヘッダーとフッターにCSSグリッドを使用する方法

Apr 02, 2025 pm 06:29 PM

スティッキーヘッダーとフッターにCSSグリッドを使用する方法

CSSグリッドは、Webレイアウトを大幅に簡素化します。学習曲線がありますが、その直感的な性質により、特にヘッダーとフッターの管理に使用するのが楽しくなります。このチュートリアルでは、CSSグリッドを使用して固定フッターとスティッキーフッターの両方を作成することを示しています。 Rachel Andrewの「The New CSSレイアウト」は、グリッドとFlexBoxに深く飛び込むために強くお勧めします。

プロジェクトの概要

ヘッダー、メインコンテンツ、フッターを使用して、クラシックなHTMLレイアウトを構築します。 2つのフッターバリエーションを実装します。コンテンツの長さに関係なく、ビューポートの底に残っている固定フッターと、底部に接着するが、より長いコンテンツによって押し下げられる伝統的な粘着フッターです。メインコンテンツ領域は、完全なビューポート幅にまたがるか、定義された幅内を中心に順応します。

固定フッターは、粘着性のあるフッターほど一般的ではありませんが、チャールズシュワブのようなサイトで使用されます。それらの実装には、多くの場合、ハードコーディングされたサイズとパディングが含まれます。私たちのアプローチは、これらの制限を回避し、CSSグリッドの柔軟性を活用します。

先に進む前に、Charles Schwabのホームページの固定フッターを調べてください。 DevToolsでコードを検査すると、ハードコーディングされた高さと位置決めが明らかになります。

これらの制約なしに同様の効果を達成しましょう。

初期スタイル

最小限のUIから始めて、CSSグリッドで徐々に強化します。 CodeSandBox(およびその後の反復)は、インタラクティブな例を提供します。

まず、Viewportの全高さを使用していることを確認してください。

体 {
  マージン:0; / * scrollbarsを防ぐ */
}

#アプリ {
  高さ:100VH;
}
ログイン後にコピー

次に、ヘッダー、メイン、フッターセクションとグリッド構造を定義します。この初期構造は、まだ意図したとおりに機能していません。それは基礎として機能します:

体 {
  マージン:0;
}

#アプリ {
  高さ:100VH;

  / *グリッドコンテナ設定 */
  ディスプレイ:グリッド;
  Grid-Template-Columns:1fr;
  Grid-Template-rows:auto 1fr auto;
  Grid-Template-Areas:
    'ヘッダ'
    '主要'
    「フッター」;
}

#App>ヘッダー{
  グリッドエリア:ヘッダー。
}

#App> main {
  グリッドエリア:メイン;
  パディング:15px 5px 10px 5px;
}

#App>フッター{
  グリッドエリア:フッター。
}
ログイン後にコピー

これにより、単一列のレイアウトが作成されます。 1fr 「残りのスペースをとる」という意味で、全幅の列になります。行は、 auto (ヘッダーとフッター用)と1fr (メインコンテンツ用の残りスペースを埋めるため)を使用してサイズになります。ハードコーディングされた高さは必要ありません。

コンテンツ統合

提供されたCodeSandboxは、デモンストレーションの目的でReactを使用しますが、CSSグリッドの原則はフレームワークとは無関係です。ヘッダー、メイン、フッターコンポーネントは、それぞれのHTML要素をレンダリングします。請求および設定セクションでは、サンプルコンテンツを提供し、レイアウトの適応性を示します。

初期レイアウトには機能的な「請求」セクションが表示されますが、「設定」はフッターを画面外に押し出します。スクロールはページ全体に影響を及ぼし、ヘッダーが消えます。これに対処しましょう。

ヘッダーとフッターを固定しました

コンテンツがビューポートを超えた場合、 100vh高さとauto / 1frの行のサイジングが最初に問題を引き起こします。 overflow: auto<main></main>要素は、メインコンテンツ領域内のスクロールを可能にし、ヘッダーとフッターを固定したままにします。

 #App> main {
  グリッドエリア:メイン;
  オーバーフロー:自動;
  パディング:15px 5px 10px 5px;
}
ログイン後にコピー

この更新されたデモは、スクロールと可視性の問題を解決します。

調整可能なメインセクション幅

メインコンテンツを幅600px以内に中央に配置するか、フルビューポートに及ぶようにするために、内部にグリッドをネストします<main></main>。これは、3つの列( 1fr 600px 1fr )を使用して、600pxセクションを効果的に中心にしています。

 #App> main {
  ディスプレイ:グリッド;
  Grid-Template-rows:1fr;
  Grid-Template-Columns:1FR 600PX 1FR;
}
ログイン後にコピー

コンテンツは、グリッド座標を使用して配置されます。 a .fullクラスでは、コンテンツが幅全体に及ぶことができます。

 #App>セクション{
  グリッドエリア:1 / 2/1 / 3;
}

#App> section.full {
  グリッドエリア:1/1 / 1/4;
}
ログイン後にコピー

グリッドラインの使用(3列の4行)の使用に注意してください。ビューポートを縮小すると、固定された600px幅の切り捨ての問題が明らかになります。 minmax(0, 600px)これを解決し、幅を最大600pxまで調整できるようにします。

主要 {
  ディスプレイ:グリッド;
  Grid-Template-rows:1fr;
  Grid-Template-Columns:1FR Minmax(0、600px)1FR;
}
ログイン後にコピー

最終的なデモでは、このレスポンシブな動作を紹介します。

伝統的なスティッキーフッター

伝統的なスティッキーフッターを作成するために、グリッド構造を変更します。<main></main>要素には、グリッド内にフッターが含まれるようになりました。

<div>
  <header></header>
  <main>
    <section></section>
    <footer></footer>
  </main>
</div>
ログイン後にコピー

#appグリッドは2つの行があるように更新されます。

 #アプリ {
  / *以前と同じ */
  Grid-Template-Columns:1fr;
  グリッドテンプレート列:Auto 1FR;
  Grid-Template-Areas:
    'ヘッダ'
    '主要';
}
ログイン後にコピー

<main></main>グリッドは、フッターを含めるように調整されています。

 #App> main {
  ディスプレイ:グリッド;
  Grid-Template-rows:1fr auto;
  Grid-Template-Columns:1FR Minmax(0、600px)1FR;
}
ログイン後にコピー

このグリッド内のフッターポジショニング:

 #App>フッター{
  グリッドエリア:2 /1 / 3/4;
}
ログイン後にコピー

このセットアップにより、フッターを内のコンテンツによって押し下げることができます<main></main>、希望するスティッキーフッター効果を作成します。適切なアライメントを確保するために、マイナーパディングの調整が行われました。最終的なデモは、この動作を示しています。セクション要素に追加のスタイリングが適用され、垂直レイアウトを維持しながらコンテンツ領域内の水平スクロールが可能になりました。

結論

実証された技術はCSSグリッドなしでは達成可能ですが、グリッドは統一されたエレガントなソリューションを提供します。固定からスティッキーフッターへの単純な移行によって実証されているように、その柔軟性と使いやすさは、複雑なレイアウトのための強力なツールになります。提示された例は比較的単純で、より野心的なプロジェクトのCSSグリッドの可能性を示しています。

以上がスティッキーヘッダーとフッターにCSSグリッドを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

WordPressブロックエディターでのマークダウンとローカリゼーションを使用します WordPressブロックエディターでのマークダウンとローカリゼーションを使用します Apr 02, 2025 am 04:27 AM

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

スティッキーヘッダーとフッターにCSSグリッドを使用する方法 スティッキーヘッダーとフッターにCSSグリッドを使用する方法 Apr 02, 2025 pm 06:29 PM

CSS Gridは、レイアウトをこれまで以上に簡単にするように設計されたプロパティのコレクションです。何でもするように、少し学習曲線がありますが、グリッドは

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

See all articles