【问题标题】:Fixed Header Overlaying Scrollbar固定标题覆盖滚动条
【发布时间】:2014-09-15 11:40:30
【问题描述】:

我在我的 CSS 中实现了一个固定的标题,但由于某种原因,它覆盖了浏览器的滚动条。我不确定它为什么这样做,但似乎我更改的所有其他内容都无济于事。有什么想法吗?

HTML:

<header class="clearfix">
  test
</header>

<div id="wrapper">
  <div id="content">
      Content
  </div><!-- end #content --> 
</div><!-- end #wrapper -->

<div id="footer">
          <center>footer</center>
</div>

CSS:

<style type="text/css">
* {
  margin:0;               
  padding:0;              
}
html, body {
  height:100%;            

  overflow:auto;      
  background:#2f3742;
  color: #B8C2CB;
}
#wrapper {
  min-height:100%;    
  width:600px;        
  margin: -30px auto;     
  background:#47535e;
  border: 1px solid #3D4857;
  border-bottom: 0;

}
* html #wrapper { 
  height:100%;        
}
#content {
  margin-top: 100px;
  padding: 5px;
}
header {
  height: 70px;
  padding: 22px 25px;
  background: #18232f;
  text-align: center; 
  position: absolute !important;
  width: 100%;
  z-index: 1;
  top:0;
  left:0; 
}
#footer {
  height:30px;
  width:600px; 
  margin: 25px auto 0;
  background:#2F3742;
  border: 1px solid #3D4857;
  border-top: 1px solid #2F3A4A;
}
</style>

【问题讨论】:

  • Chrome 和 Firefox(最新)
  • 我无法使用你的小提琴在 FF30.0 中复制它。
  • 不会出现在 jdfiddle 框架内...尝试将相同的代码放入 index.html 并直接从那里启动。
  • 您有什么理由想在正文中滚动而不是让浏览器为您滚动?我指的是您在 html 和溢出正文上的 CSS:auto;
  • 不。这似乎是我唯一的解决方案,即拥有一个固定的页眉以及一个触及页脚末端的正文,页脚也固定并触及窗口的底部。 (我知道......我很需要:-P)

标签: javascript html css header fixed


【解决方案1】:

UPDATED FIDDLE

我在您的代码中观察到的三件事:

您在标题中提供了 100% 宽度的填充

给身体overflow:auto

提供position:absolute 而不是position:fixed 来修复标题

CSS 将是:

* {
    margin:0;               /* zero out margin */
    padding:0;              /* zero out padding */
}
html, body {
    height:100%;            /* gives layout 100% height */
    background:#2f3742;
    color: #B8C2CB;
    font-family: Verdana, Geneva, sans-serif;
    font-size: 12px;
}
#wrapper {
    min-height:100%;        /* gives layout 100% height */
    width:600px;            /* centered div must be given a width */
    margin: -30px auto;             /* centers #wrapper */
    background:#47535e;
    border: 1px solid #3D4857;
    border-bottom: 0;
    
}
* html #wrapper { 
    height:100%;            /* IE6 treats height as min-height */
}
#content {
    margin-top: 100px;
    padding: 5px;
}
p {
    font-size:1.8em;
    text-align:center;
    padding:30px 0 30px;    /* bottom padding clears the #footer */
}
#header {
    height:70px;
    width:600px;            /* centered div must be given a width */
/*  margin: 0 auto -70px; */    /* -80px sucks it back in & auto centers it */
    background-color:#18232f;
    /* background-color:#2F3742; */
    position: absolute;
    top: 0;
    border-bottom: 1px solid #2F3A4A;
}

header {
  height: 70px;
  padding: 0px;
  background: #18232f;
  text-align: center; 
  position: absolute !important;
  width: 100%;
  z-index: 1;
  top:0;
  left:0;
}
.inner-header { padding:20px 25px; }

#footer {
    height:30px;
    width:600px;                /* centered div must be given a width */
    margin: 25px auto 0;            /* -80px sucks it back in & auto centers it */
    background:#2F3742;
    /* bottom: 0; */
    border: 1px solid #3D4857;
    border-top: 1px solid #2F3A4A;
}

HTML:

<header class="clearfix">
    <div class="inner-header">
  test
    </div>
</header>

<div id="wrapper">
  <div id="content">
      Content
  </div><!-- end #content --> 
</div><!-- end #wrapper -->

<div id="footer">
          <center>footer</center>
</div>

【讨论】:

  • 你打败了我,很高兴为你收集需求:-)
  • 这是我的荣幸 :) :P
  • 虽然标题不固定...如果我垂直填充#content 正文并滚动,标题不再位于顶部。页脚似乎比正文延伸得更远。
  • @theflarenet 请在我的回答中检查我更新的小提琴
  • 这太棒了!谢谢你。但是我又遇到了一个问题:i.imgur.com/GyBMBY1.png
【解决方案2】:

简短回答:滚动条在您的身体上,因此在您的身体上添加一个 margin-top,您的滚动条(连同内容顶部的其余部分将重新出现)。

body {
    margin-top:110px;
}

固定 JSFiddle: http://jsfiddle.net/9CkNC/1/

详细回答:请注意,在进行此修复后会出现其他问题。在您的 CSS 中进行一些可能有用的小调整,我添加了一些 cmets,它们应该对 JSFiddle 有所帮助。此外,制作静态标题栏是网页设计界非常常见的技术,因此有很多关于它的精彩博客文章。我会做一些窥探,看看其他人是如何做到的。

这是一个很好的开始:https://www.youtube.com/watch?v=3I2Uh-D-lzI

我是怎么做的:

【讨论】:

  • 哦,看来我链接了错误的 JSFiddle。您自己尝试过还是查看了我答案的其他部分?
  • 是的。我试图用固定的页眉和页脚重新创建一个,但我不喜欢滚动条只出现在正文中的方式。它看起来像一个 iframe,这不是我的目标。我期待在整个窗口中拥有滚动条,并在其中固定页眉和页脚。
  • 这太棒了,但是其他解决方案的相同问题发生在设置为主体的背景(比如说渐变)没有动态覆盖的情况下:i.imgur.com/GyBMBY1.png
  • 不要在body上设置背景。设置为&lt;main&gt;
  • 不幸的是,我已经为
    设置了另一个背景,并期待为 使用动态渐变背景。我离我需要的很近!
猜你喜欢
  • 2014-07-30
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 2012-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多