検索
ホームページウェブフロントエンドCSSチュートリアルスティッキーヘッダーとフッターにCSSグリッドを使用する方法

スティッキーヘッダーとフッターに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 までご連絡ください。
Draggin&#039;ドロップピン&#039;反応でDraggin&#039;ドロップピン&#039;反応でApr 17, 2025 am 11:52 AM

React Ecosystemは、すべてがドラッグアンドドロップの相互作用に焦点を合わせている多くのライブラリを提供します。 React-Dnd、React-Beautiful-Dnd、

高速ソフトウェア高速ソフトウェアApr 17, 2025 am 11:49 AM

最近、高速ソフトウェアについて素晴らしい相互接続されたことがいくつかありました。

バックグラウンドクリップ付きのネストされたグラデーションバックグラウンドクリップ付きのネストされたグラデーションApr 17, 2025 am 11:47 AM

バックグラウンドクリップをすべて頻繁に使用すると言うことができます。私は、日々のCSS作業ではほとんど使用されていない&#039; dを賭けています。しかし、私はステファン・ジュディスの投稿でそれを思い出しました、

ReackAnimationFrameを使用してReact Hooksを使用しますReackAnimationFrameを使用してReact Hooksを使用しますApr 17, 2025 am 11:46 AM

RequestAnimationFrameでアニメーション化するのは簡単なはずですが、Reactのドキュメントを徹底的に読んでいない場合は、おそらくいくつかのことに遭遇するでしょう

ページの上部にスクロールする必要がありますか?ページの上部にスクロールする必要がありますか?Apr 17, 2025 am 11:45 AM

おそらく、それをユーザーに提供する最も簡単な方法は、要素上のIDをターゲットにするリンクです。だから...

Best(GraphQL)APIはあなたが書くものですBest(GraphQL)APIはあなたが書くものですApr 17, 2025 am 11:36 AM

聞いてください、私はGraphQLの専門家ではありませんが、私はそれで働くことを楽しんでいます。フロントエンド開発者としてデータを公開する方法はかなりクールです。メニューのようなものです

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーターApr 17, 2025 am 11:26 AM

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

ボーダー半径を保存しながら箱を拡張するためのさまざまな方法ボーダー半径を保存しながら箱を拡張するためのさまざまな方法Apr 17, 2025 am 11:19 AM

私は最近、Codepenの興味深い変化に気づきました。ホームページにペンをホバリングすると、丸い角が背面に拡大する長方形があります。

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1

メモ帳++7.3.1

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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