一种巧妙的粘性页脚技巧

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

如今,听到“粘性页脚”,我想大多数人都会想到position: sticky的情况,其中页脚元素在某个父元素的滚动上下文中显示为固定在屏幕上。

这与我在这里讨论的内容不完全相同。“粘性页脚”是position: sticky出现之前的 UI 概念,它们的含义略有不同。其理念是,即使页面内容不足以将其推到那里,它们也**会粘贴在屏幕底部**。但如果内容足够多,它们就会很乐意被向下推。

我们过去几年介绍了五种实现此目的的方法,其中包括一些比较现代的技术,包括calc()、弹性盒和 CSS 网格。

第六位挑战者出现了!读者 Sílvio Rosa 提出以下方法

(可能最容易在中等大小的桌面屏幕上查看,因为粘性页脚在这里最有用。)

它基本上是这样的

html, body { height: 100%;}

body > footer {
  position: sticky;
  top: 100vh;
}

我喜欢它的一点是,它不需要为非页脚内容创建任何特殊的额外包装器。

它也有些令人费解。当我看到top: 100vh;时,我想嗯,这行不通,因为它会将页脚推到可视区域之外。但这就是巧妙之处。无论页脚大小如何,它都会这样做(没有魔法数字),然后粘性定位会将其“吸回”以粘贴在底部边缘。但它永远不会与内容重叠,因此很乐意被推到内容下方,这是粘性页脚模式的核心原则。