【发布时间】:2018-08-31 10:24:48
【问题描述】:
我有两个固定元素,其中一个可以有
display: block 或 display: none。另一个固定元素总是可见的。我希望元素贴在网站顶部,同时不让它们相互重叠。
我发现的唯一建议解决方案是以下问题:
How to position a fixed div under another fixed div?
Fixed element below fixed element without JS
将您的两个 div 放入另一个容器 div 并将其设置为 固定。
但是我不能这样做,因为这两个元素在代码中的不同位置,我无法更改。
这是一个演示我的问题的代码 sn-p:
nav,
.secondmenu {
position: fixed;
height: 120px;
opacity: 1;
top: 0;
width: 100%;
background: lightgrey;
}
.secondmenu {
height: 50px;
background: grey;
opacity: 1;
z-index: 2;
}
body {
height: 1000px;
}
<div class="secondmenu">Might be there or not and overlays the other navigation</div>
<div>Some other stuff separating the two from each other with relative position</div>
<nav></nav>
我想要什么以及要记住的事情:
- 如果两个元素都可见,则应将它们固定在页面顶部,而一个位于另一个下方
- 如果只有第二个元素可见,我希望将第二个元素固定在页面顶部
- 第一个元素可以使用内联样式更改其可见性(
display:nonedisplay:block,即使不重新加载网站) - Javascript/Jquery 解决方案很好
【问题讨论】:
-
如果元素实际上是 DOM 中的同级元素,并且第一个元素的显示由诸如通过 JavaScript 动态设置/删除的类之类的东西切换,那么其余的可以单独在 CSS 中处理,使用通用兄弟组合
~ -
@misorude 遗憾的是,第一个元素的显示是通过内联样式切换的。不过这是个好主意!
标签: javascript jquery html css