javascript - 我正在尝试制作一个具有固定位置菜单的响应式网站。如何获得菜单 div 的大小以将容器向下推?

标签 javascript html css

我希望有一种方法可以不使用 javascript 来做到这一点,但如果我们必须这样做的话。我正在尝试更新我的投资组合以做出响应,但我遇到了第一堵墙。

我想要一个固定在顶部的菜单。接下来是将投资组合容器排列到菜单底部,无论它的高度是多少。

另一件事是,当我将不同的部分放入我的作品集容器中时,使背景颜色一直向左延伸的代码不再起作用。

我试过使用 z-index 和菜单的位置来解决投资组合背景问题,但我不确定这是否会使菜单间距问题变得更难。

我还尝试制作一个与菜单大小相同的虚拟 div,以将其他 div 向下推。虽然它解决了一些问题,但它带来了更多。

这是我的 fiddle https://jsfiddle.net/Spiderian/wf58yh6r/1/

这是我的代码:

#menu {
z-index: 100;
min-height: 96px;
position: fixed;
top: 0px;
left: 0px;
background-color: #62af45;
}
#menu:before {
content:"";
background-color: #62af45;
position: absolute;
height: 100%;
width: 200vw;
left: -100vw;
z-index: -1;
}
#portfolio {
overflow-y: auto;
position: relative;
width: 300%
}
#portfolio:before {
content:"";
position: absolute;
height: 100%;
width: 200vw;
left: -100vw;
z-index: -1;
}

最佳答案

对于固定菜单,您需要手动设置 body 的 padding-top 以将内容向下推。在您的情况下,您的菜单设置为 96px 的最小高度。

最好设置高度,这样您就不必担心它会在您身上发生变化。这样您就可以毫无问题地设置 body 元素的 padding-top。

当屏幕太小时,您应该使用下拉菜单。但是,您必须为此使用 javascript。

看这里: https://www.w3schools.com/howto/howto_js_topnav_responsive.asp

对于您的 header ,它们向右突出的原因是因为您的#wrapper 元素的“margin: 0 auto”。您需要做的就是删除该行代码。此外,您的 body 元素有一些边距,因此您应该将其设置为 0。

它们应该是这样的:

body {
    background-color: black;
    padding-top: 106px;
    margin: 0;
}
#wrapper {
    max-width: 1040px;
    padding: 0;
}

#menu {
    z-index: 100;
    height: 96px;
    position: fixed;
    top: 0px;
    left: 0px;
    background-color: #62af45;
}

固定菜单本质上会覆盖内容。为了根据菜单的大小下推内容,您必须将菜单从“固定”更改为“相对”。

你会像这样改变你的菜单:

#menu {
    position: relative;
    float: left;
    clear:left;
    right:0;
    left:0;
    top:0;
    background-color: #62af45;
 }

关于javascript - 我正在尝试制作一个具有固定位置菜单的响应式网站。如何获得菜单 div 的大小以将容器向下推?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57750556/

相关文章:

javascript - 模板中的 Mustache php 空间

css - 使用 Bootstrap 3 样式/布局用户摘要框

html - Rails 静态页脚布局

html - 无法缩小我的导航栏

html - 响应式菱形网格

html - 仅当图像不是背景图像时,如何使用 CSS 使图像响应?

javascript - 有没有办法在 blur 或 focusout 事件中获取被点击的元素?

javascript - 在一个函数中使用来自两个单独 JSON 文件的数据

javascript - 如何确定 saveAs()Function javascript 或 typescript 的路径?

javascript - 选择字段 OnChange,使 <tr> 显示/隐藏,最初显示但一旦消失,无法重新显示