搜尋
首頁web前端css教學如何將CSS網格用於粘頭和頁腳

如何將CSS網格用於粘頭和頁腳

CSS網格大大簡化了Web佈局。儘管有一個學習曲線,但其直觀的性質使使用曲線令人愉快,尤其是用於管理標題和頁腳。該教程演示了使用CSS網格同時創建固定和粘性頁腳。雷切爾·安德魯(Rachel Andrew)的“新CSS佈局”強烈建議您深入研究網格和Flexbox。

項目概述

我們將使用標頭,主內容和頁腳構建經典的HTML佈局。我們將實現兩個頁腳變化:一個固定的頁腳,無論內容長度如何,都保持在視口底部的固定頁腳,而傳統的粘性頁腳則粘在底部,但會被更長的內容推向。主內容區域將具有適應性的,跨越全視口寬度或定義寬度內的集中。

固定的頁腳雖然不如粘稠的頁腳常見,但由查爾斯·施瓦布(Charles Schwab)等網站使用。它們的實現通常涉及硬編碼的尺寸和襯墊。我們的方法避免了這些局限性,利用CSS電網的靈活性。

在繼續之前,請檢查Charles Schwab主頁的固定頁腳。在DevTools中檢查其代碼會發現硬編碼的高度和定位。

讓我們在沒有這些約束的情況下達到類似的效果。

初始樣式

我們將從最小的UI開始,使用CSS網格逐漸增強它。 CODESANDBOX(以及隨後的迭代)提供了交互式示例。

首先,我們確保使用視頻的全高度:

身體 {
  保證金:0; / *防止滾動條 */
}

#應用程式 {
  身高:100VH;
}

接下來,我們定義標題,主和頁腳及其網格結構。這種初始結構尚未按預期發揮作用。它是基礎:

身體 {
  保證金:0;
}

#應用程式 {
  身高:100VH;

  / *網格容器設置 */
  顯示:網格;
  網格板柱:1FR;
  網格板行:自動1FR自動;
  網格 - 板序:
    “標題”
    '主要的'
    '頁尾';
}

#App>標題{
  網格區域:標題;
}

#App> main {
  網格區域:主;
  填充:15px 5px 10px 5px;
}

#App>頁腳{
  網格區域:頁腳;
}

這創建了單列佈局。 1fr的意思是“佔據剩餘空間”,導致全寬列。使用auto (用於標頭和頁腳)和1fr (用於填充剩餘空間)的行大小。無需硬編碼高度。

內容集成

提供的代碼和框用於演示目的,但CSS網格原理仍然獨立於框架。標頭,主和頁腳組件呈現相應的HTML元素。計費和設置部分提供了樣本內容,證明了佈局的適應性。

初始佈局顯示功能性的“計費”部分,但“設置”將頁腳推開屏幕。滾動會影響整個頁面,從而導致標頭消失。讓我們解決這個問題。

固定標頭和頁腳

100vh高度和auto / 1fr行尺寸最初會導致內容超過視口時問題。添加overflow: auto<main></main>元素可以在主內容區域內進行滾動,使標頭和頁腳固定:

 #App> main {
  網格區域:主;
  溢出:自動;
  填充:15px 5px 10px 5px;
}

此更新的演示可以解決滾動和可見性問題。

可調節的主部分寬度

要將主內容置於600px寬度之內或允許其跨越全視口,我們將網格嵌套在內部<main></main>。這使用三列( 1fr 600px 1fr ),有效地居中600px部分。

 #App> main {
  顯示:網格;
  網格板行:1FR;
  網格板柱:1FR 600px 1fr;
}

內容是使用網格坐標定位的。 .full類允許內容跨越整個寬度:

 #App> e節{
  網格區域:1/2/1/3;
}

#App> section.full {
  網格區域:1/1 / 1/4;
}

注意使用網格線(三列的四行)。縮小視口揭示了固定600px寬度的截斷問題。 minmax(0, 600px)解決了這一點,允許寬度調整為600px:

主要的 {
  顯示:網格;
  網格板行:1FR;
  網格 - 板柱:1FR Minmax(0,600px)1FR;
}

最終演示展示了這種響應行為。

傳統的粘頁腳

為了創建傳統的粘頁,我們修改了網格結構。這<main></main>現在,元素包含其網格中的頁腳:

<div>
  <header></header>
  <main>
    <section></section>
    <footer></footer>
  </main>
</div>

#app網格已更新為有兩個行:

 #應用程式 {
  / *與以前相同 */
  網格板柱:1FR;
  網格 - 板行:自動1FR;
  網格 - 板序:
    “標題”
    '主要的';
}

<main></main>將網格調整為包括頁腳:

 #App> main {
  顯示:網格;
  網格 - 板板行:1FR auto;
  網格 - 板柱:1FR Minmax(0,600px)1FR;
}

該網格中的頁腳定位:

 #App>頁腳{
  網格區域:2/1 / 3/4;
}

此設置允許頁腳通過內容推向<main></main>,產生所需的粘性頁腳效果。進行了較小的填充調整以確保正確對齊。最終演示說明了這種行為。將額外的樣式應用於截面元素,以允許在內容區域內進行水平滾動,同時保持垂直佈局。

結論

雖然沒有CSS網格可以實現所證明的技術,但網格提供了一個統一而優雅的解決方案。從固定的頁腳到粘性頁腳的簡單過渡證明了它的靈活性和易用性,使其成為複雜佈局的強大工具。提出的示例相對簡單,展示了CSS網格對更雄心勃勃的項目的潛力。

以上是如何將CSS網格用於粘頭和頁腳的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
@KeyFrames vs CSS過渡:有什麼區別?@KeyFrames vs CSS過渡:有什麼區別?May 14, 2025 am 12:01 AM

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

使用頁面CMS進行靜態站點內容管理使用頁面CMS進行靜態站點內容管理May 13, 2025 am 09:24 AM

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y&#039;知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接HTML中CSS文件的最終指南鏈接HTML中CSS文件的最終指南May 13, 2025 am 12:02 AM

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

CSS Flexbox與網格:全面評論CSS Flexbox與網格:全面評論May 12, 2025 am 12:01 AM

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

如何包括CSS文件:方法和最佳實踐如何包括CSS文件:方法和最佳實踐May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用