目次
プロジェクトの概要
初期スタイル
コンテンツ統合
ヘッダーとフッターを固定しました
調整可能なメインセクション幅
伝統的なスティッキーフッター
結論
ホームページ ウェブフロントエンド 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)

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

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

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

WordPressテーマでVueコンポーネントを構築する方法 WordPressテーマでVueコンポーネントを構築する方法 Apr 11, 2025 am 11:03 AM

インラインテンプレートディレクティブにより、既存のWordPressマークアップに対する進行性の強化として、リッチVUEコンポーネントを構築できます。

PHPはテンプレートのA-OKです PHPはテンプレートのA-OKです Apr 11, 2025 am 11:04 AM

PHPテンプレートは、多くの場合、サブパーコードを促進するために悪いラップを取得しますが、そうである必要はありません。 PHPプロジェクトが基本を実施する方法を見てみましょう

SASSをプログラミングして、アクセス可能な色の組み合わせを作成します SASSをプログラミングして、アクセス可能な色の組み合わせを作成します Apr 09, 2025 am 11:30 AM

私たちは常にWebをよりアクセスしやすくしたいと考えています。色のコントラストは単なる数学なので、SASSはデザイナーが見逃したかもしれないエッジケースをカバーするのに役立ちます。

See all articles