目录
项目概述
初始样式
内容集成
固定标头和页脚
可调节的主部分宽度
传统的粘页脚
结论
首页 web前端 css教程 如何将CSS网格用于粘头和页脚

如何将CSS网格用于粘头和页脚

Apr 02, 2025 pm 06:29 PM

如何将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

热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

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

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

它的出局!恭喜Vue团队完成了完成,我知道这是一项巨大的努力,而且很长时间。所有新文档也是如此。

您可以从浏览器获得有效的CSS属性值吗? 您可以从浏览器获得有效的CSS属性值吗? Apr 02, 2025 pm 06:17 PM

我有人写了这个非常合法的问题。 Lea只是在博客上介绍了如何从浏览器中获得有效的CSS属性。那样的是这样。

在CI/CD上有点 在CI/CD上有点 Apr 02, 2025 pm 06:21 PM

我说的“网站”比“移动应用程序”更合适,但我喜欢Max Lynch的框架:

带有粘性定位的堆叠卡和一点点的杂物 带有粘性定位的堆叠卡和一点点的杂物 Apr 03, 2025 am 10:30 AM

前几天,我发现了科里·金尼文(Corey Ginnivan)网站上的这一点,当您滚动时,彼此之间的卡片堆放集。

在WordPress块编辑器中使用Markdown和本地化 在WordPress块编辑器中使用Markdown和本地化 Apr 02, 2025 am 04:27 AM

如果我们需要直接在WordPress编辑器中向用户显示文档,那么最佳方法是什么?

比较浏览器的响应式设计 比较浏览器的响应式设计 Apr 02, 2025 pm 06:25 PM

这些桌面应用程序中有许多目标是同时在不同的维度上显示您的网站。因此,例如,您可以写作

为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? 为什么Flex布局中的紫色斜线区域会被误认为是'溢出空间”? Apr 05, 2025 pm 05:51 PM

关于Flex布局中紫色斜线区域的疑问在使用Flex布局时,你可能会遇到一些令人困惑的现象,比如在开发者工具(d...

如何将CSS网格用于粘头和页脚 如何将CSS网格用于粘头和页脚 Apr 02, 2025 pm 06:29 PM

CSS网格是一系列属性的集合,旨在使布局比以往任何时候都容易。像任何东西一样,那里有一点学习曲线,但是网格是

See all articles