需要固定的 div 不要与父相对 div 重叠

Posted

技术标签:

【中文标题】需要固定的 div 不要与父相对 div 重叠【英文标题】:Need fixed div don't overlaps parent relative div 【发布时间】:2016-07-09 05:16:38 【问题描述】:

我正在尝试制作一个页脚,当我向上滚动时,它会留在后面/隐藏。 想象一下 2 个 div(第一个和第二个),一个在另一个之下:

<div id="first">
    <div class="footer" style="color:red">
    </div>
</div>
<div id="second">
    <div class="footer" style="color:green">
    </div>
</div>

两个页脚位置固定,底部0,#first和#second处于相对位置。当我向下滚动时,第一个页脚在#second 后面消失。但是当我向上滚动时,#second 页脚不会消失在 #first div 后面。

插图:Screen capture of my problem. 我需要绿色的被#first div 隐藏(就像红色的被#second div 隐藏)。

body
 margin : 0px; 

.parent
  height : 500px;
  width : 100%;
  position:relative;

.footer
  position:fixed;
  bottom:0px;
  left:0px;
<div class="parent" style="background-color:red;">
    <div class="footer" style='color:yellow'>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
    </div>
</div>
<div class="parent" style="background-color:green;">
    <div class="footer" style='color:blue'>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
</div>
看看数字 4(黄色),它消失了,很棒!当它在第一个 div 父级上时,我需要 1、2 和 3 做同样的事情。

【问题讨论】:

尝试在第一个设置z-index: 2,在第二个设置z-index: 1 Yap @LGSon,已经尝试过了,现在绿色正在工作,红色不起作用 发布一个最小的工作 sn-p 以便我们查看它的外观。 Invert CSS font-color depending on background-color的可能重复 我删除了我的答案并投票关闭了重复。使用欺骗链接的答案,您应该能够解决它。 【参考方案1】:

我终于找到了方法,我将页脚设置在绝对位置,并在滚动时使用 jQuery 更改顶部属性。但它只适用于 Firefox。 Chrome 不知道 scrollTop :/

【讨论】:

以上是关于需要固定的 div 不要与父相对 div 重叠的主要内容,如果未能解决你的问题,请参考以下文章

CSS如何控制 2个div 的 部分 重叠在一起 并将其中一个div的内容固定显示在上层

如何在保持垂直位置的同时使 div 与父级的右侧对齐?

jQuery Mobile 固定标题 div 与内容 div 重叠

IFE:day9-day11(子div与父div的下移问题)

如何让两个div重叠?

如何使字体大小相对于父 div?