【问题标题】:Getting rid of vertical scrollbar that comes with sticky footer摆脱带有粘性页脚的垂直滚动条
【发布时间】:2015-03-11 10:58:39
【问题描述】:

我目前正在开发一个要求页脚位于底部的网络应用程序。我能够将页脚移到底部,但在我的屏幕上,尽管内容没有占据整个页面,但我必须向下滚动才能看到页脚。

我有以下用于粘性页脚的 CSS 代码:

html, body {
  height: 100%;
  width: 100%;
}

#container {
  overflow: none;
  width: 80%;
  min-height: 100%;
  margin: 0 auto -2em; /* Height of footer */
 }

.push {
  height: 2em;
} 

.primary-footer {
   width: 100%;

}
.primary-footer .copyright {
  height: 2em;
  background: red;
  color: #fff;
  padding-left: 20%;
  padding-top: 0.5%;
  clear: both;
}

项目布局见:https://jsfiddle.net/7m6Lqmww/

基于 jsfiddle,它在较小的屏幕上似乎可以正常工作,但在较大的屏幕上,会出现一个垂直条。

【问题讨论】:

  • 你可以试试这个技巧,我觉得它更聪明-stackoverflow.com/a/28920634/483779
  • 等一下,您是否想让页脚始终位于屏幕底部?就像即使您向下滚动页脚也会“卡在”显示屏底部一样?像这样cssplay.co.uk/layouts/bodyfix.html 滚动时保留的东西会粘在底部吗?
  • 不,我只需要它在不需要时不显示滚动条,我认为@sdcr 解决方案对我的情况很有效。

标签: html css web-applications


【解决方案1】:

您当前的代码不起作用有两个原因:

  1. 您错误地调整了页脚的大小。它有一个填充,可以增加它的总大小。您可以使用不同的 box-sizing 选项进行更改:

    .primary-footer .copyright { box-sizing:边框框; }

但我认为最好只为 padding-top 使用 em 值并将其添加到总页脚高度的因子中。

  1. 您没有考虑页眉的高度。您试图通过在其上方放置一个与整个页面大小相同的元素来向下移动页脚,但该元素已被页眉向下推。您必须为其设置高度值。

这给我们留下了这个:

.primary-footer .copyright {
  height: 2em;
  background: red;
  color: #fff;
  padding-left: 20%;
  padding-top: .25em; /* change */
  clear: both;
}
#container {
  box-sizing: border-box; /* add */
  overflow: none;
  width: 80%;
  min-height: 100%;
  padding-top: 2em; /* add */
  margin: -2em auto -2.25em; /* change */
}

header {
  height: 1.5em;
  width: 100%;
  background: red;
  padding: .25em 0;
}

添加上边距和边距会使容器向上移动,使其与页面顶部齐平,同时保持其内容可见。 Box-sizing 防止额外的高度被填充添加到容器中。

注意:我已将页眉和页脚中的填充值从百分比更改为像素。填充百分比基于宽度,因此无法计算元素的总大小。

【讨论】:

  • 我仍然得到垂直滚动条。
  • 你知道你的页眉高度吗?它没有设置在您的小提琴中,但我认为我需要它才能正常工作。
  • 我当前的高度设置为 15%,虽然这个值以后可能会改变。
猜你喜欢
  • 2012-07-23
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 2011-10-31
  • 2020-09-28
  • 2010-10-22
  • 2011-01-12
相关资源
最近更新 更多