我的意图是在页面顶部创建一个菜单,即使用户滚动,它也会保持在页面顶部(比如Gmail最近的功能,它有常用的按钮与用户一起向下滚动,这样用户就可以在不必滚动到页面顶部的情况下对消息执行操作).

我还想将上述菜单下面的内容设置为显示在它下面——目前,它显示在它后面.

我的目标是:

+________________________+
|          MENU          | <--- Fixed menu - stays at top even when scrolling.
+¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬+
|     CONTENT BEGINS     |
|          HERE          |
|                        |
|                        |
|                        |
|                        |
|                        |
|                        |
+¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬+   <--- Bottom of page.

我希望在页面顶部有一个永远不会移动的菜单,即使用户向下滚动,它也会保持在页面顶部.我还希望当用户位于页面顶部时,主内容从菜单下方开始,但当用户向下滚动时,菜单是否超出内容顶部并不重要.

摘要:

  • 我希望有一个固定位置的菜单在页面顶部跟随用户滚动.
  • 只有当用户位于页面顶部时,内容才必须显示在菜单下方.
    • 当用户向下滚动时,菜单可能会与内容重叠.

有人能解释一下如何做到这一点吗?

谢谢.

UPDATE:

CSS代码:

#floatingMenu{
clear: both;
position: fixed;
width: 85%;
background-color: #78AB46;
top: 5px;
}

HTML代码:

<div id="floatingMenu">
    <a href="http://www.google.com">Test 1</a>
    <a href="http://www.google.com">Test 2</a>
    <a href="http://www.google.com">Test 3</a>
</div>  

目前,我可以通过将菜单放在我的containerdiv中,使其显示在页面顶部并居中.但是,内容在菜单后面.我已经设定了clear: both;,但这没有帮助.

推荐答案

您需要的是一个额外的空格div(据我理解您的问题).

此div将放置在菜单和内容之间,高度与菜单div相同,包括填充.

HTML

<div id="fixed-menu">
    Navigation options or whatever.
</div>
<div class="spacer">
    &nbsp;
</div>
<div id="content">
    Content.
</div>

CSS

#fixed-menu
{
    position: fixed;
    width: 100%;
    height: 75px;
    background-color: #f00;
    padding: 10px;
}

.spacer
{
    width: 100%;
    height: 95px;
}

请参见我的示例here.

这是通过抵消nav div本应占用的空间来实现的,但由于它有position: fixed;个空间,它已从文档流中删除.


实现此效果的首选方法是在内容包装器上使用margin-top: 95px;/*your nav height*/.

Css相关问答推荐

添加Angular 17的Stackblitz项目的Angular material 主题?

VueJS CSS动画不会扩展到v-card/v-col之外

如何在页面顶部创建固定横幅,并在其下方设置滚动条?

如何使用遮罩创建手绘SVG动画

带插值的 Sass 数学函数

css ::part 伪 Select 器 Chrome 兼容性?

父母是内联块,子元素有%填充=奇怪的行为

CSS 在具有多个背景图像的元素上过滤一个背景图像

CSS Slanding Div 边缘在图像上

将 CSS 注入 Shadow 根.然而风格正在受到影响

Twitter Bootstrap:进度条居中文本

CSS,居中的 div,缩小以适应?

更改最后一个
  • 的 CSS
  • 隐藏元素,但显示 CSS 生成的内容

    使用 Twitter Bootstrap 使页脚粘在页面底部

    在 css 中使用 FontAwesome 或 Glyphicons :before

    如何使 window.scrollTo() 效果平滑

    将 CSS 类添加到 Html.BeginForm()

    CSS停止图像下的文本换行

    HTML5 和边框