【问题标题】:CSS Positioning Issue with :after Pseudo-ElementCSS定位问题:伪元素之后
【发布时间】:2011-12-11 02:30:05
【问题描述】:

编辑:位于 cmets 中的 Tinkerbin 示例。

我遇到的问题是固定顶栏位于滑块后面(现在只有一张幻灯片用于测试)。发生这种情况是因为用于勾勒标题的浅绿色背景是使用 .page-header 类上的 :after 伪元素创建的,就像这样(使用 SASS):

.page-header {
    position: relative;
    z-index: 0;
    padding: 35px 0;
    &:after {
        position: absolute;
        width: 100%;
        top: 0;
        left: 0;
        right: 0;
        height: 400px;
        border-bottom: 5px solid $white;
        z-index: -1;
    }
}

这将伪元素放在标题后面,但 sill 将它留在滑块前面。我已经将滑块相对放置在伪元素的前面,但我一生都无法弄清楚如何调整,所以顶栏总是在顶部。这里是顶栏的代码:

.nav-cont {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 0;
    height: 40px;
    z-index: 9999;
}

请随时查看演示站点,如果您有任何想法,请告诉我。我和其他一些人一起浏览了Chris Coyier's 参考资料,但似乎无法找到解决方案。

提前感谢任何可能对此进行研究的人!

【问题讨论】:

  • 为了帮助我们帮助您,您能否提供您观察到此问题的最简单的场景,并在jsfiddle 上提供演示?
  • 没问题,here you go

标签: css layout formatting positioning pseudo-element


【解决方案1】:

我想通了。

.nav-contheader 的子代,由于背景奇怪的 z-index 要求,它被拉到幻灯片下方。 z-index是相对的,所以z-index高的导航只能是header中最高的东西,都在幻灯片下面。

.nav-cont 移出header 并为其设置高z-index 可解决此问题。另外,严格来说,导航在语义上属于 <nav> 元素。

Fixed example

【讨论】:

  • 谢谢,书柜!我会看看重新洗牌的一切。实际上,我只是在看一下 TechCrunch 的网站,看看他们是如何处理这个问题的,他们正在做同样的事情。哦,我已经在 <nav> 元素中获得了导航,只是将所有内容都剥离到 Tinkerbin 示例中的基本要素。 :) 我一定会仔细检查并清理代码,以消除这里不必要的标记。感谢您的所有帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 2018-11-11
  • 2015-09-13
相关资源
最近更新 更多