我在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>
答案 0 :(得分:2)
我在你的代码中观察到三件事:
您在标题中提供了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>
答案 1 :(得分:1)
简答:滚动条位于您的身体上,因此在您的身体上添加一个margin-top,您的滚动条(以及内容顶部的其余部分将重新出现)。
body {
margin-top:110px;
}
修正了JSFiddle: http://jsfiddle.net/9CkNC/1/
长答案:请注意,修复此问题后会出现其他问题。在CSS中有一些可能有用的小调整,我添加了一堆注释,这些注释应该对JSFiddle有所帮助。另外,在网页设计世界中制作静态标题栏是一种非常常见的技术,所以有很多关于它的博客文章。我会做一些窥探,看看其他人是如何做到的。
这是一个很好的开始:https://www.youtube.com/watch?v=3I2Uh-D-lzI