水平到 off-canvas nav with splash screen,绝对定位冲突

Horizontal to off-canvas nav with splash screen, absolute positioning conflicts

我在上一个问题的同一个网站上工作(我是 CSS3 菜鸟)。我正在使用的网站有一个水平导航菜单,可以切换到关闭的 canvas 菜单。我用 jQuery 打开和关闭 类,它看起来很不错。 html 被 div 分成两个 div,一个 #drawer 和一个 #site-canvas。 简化后,html 看起来像这样

<body>
<nav id="drawer">
//ul menu stuff
</nav>
<div id="site-canvas">
   <header> // header for mobile version </header>
   <div class="splash">//Splash Screen<div>
   <div id="site-content">//Lorem Ipsum<div>
</div> <!--End #site-canvas-->
</body>

它将具有启动画面,其图像将占据 100% 的视口并保持居中。

/* Splash page */
.splash {
    background: url('//image') center center;
     background-size: cover;
     min-height: 100%;
 }   

到目前为止一切顺利,但在桌面样式(1000px+ 宽度)中,我们现在与导航有冲突 div 在网站之外 canvas 导致它被单独修复滚动条(启动画面箭头现在也已修复,图像底部不在视口底部)。移动版没有这些问题。 http://codepen.io/StuffieStephie/pen/pJVKmv

我可以通过绝对定位解决上述问题,但随后我失去了自然的文档流并且页面上下文在屏幕上流动。

.splash {
    background: url('//someimage.jpg') center center;
     background-size: cover;
     min-height: 100%;
     width: 100%;
     text-align: center;
     position:absolute;
     top: 0;
     left: 0;
     z-index: 0;
}

http://codepen.io/StuffieStephie/pen/oXdMBy

关于如何解决这个问题有什么想法吗?我迷路了。

我想出了一个解决方案here

为了解决箭头问题,我在 splash div 中添加了 position:relative; 来制作箭头,即 position:absolute; 将自身锚定到 div , 而不是浏览器 window.

为了解决 nav 问题,我将其定位更改为 fixed,然后从 body, html 中删除了 overflow:hidden;,从 [=18 中删除了 overflow-y: scroll; =] 标签。

这使得 nav 固定。我认为这是预期的目标,并通过删除包装元素的溢出样式属性允许文档的其余部分自然流动。