Css 位置固定在 header 隐藏内容
Css position fixed on header hides content
我正在制作一个新网站,但 header 有问题...我将 header 的位置设置为固定,这有效,但 header 下面的内容=22=] 被隐藏了。我试图用 margin-top: 10px
将内容向下移动,但它所做的只是将 header 向下移动。
Link 到 jsfiddle:
尝试使用
padding-top: 58px;/*the height of the header*/`
而不是
margin-top:10px;
将padding-top:58px;
添加到.responsiveContainer
并将top:0;
添加到.header
。
.responsiveContainer {
width: 100%;
// Add padding top
padding-top: 58px;
}
.header {
background-color: #000000;
padding: 10px;
padding-left: 0;
padding-right: 0;
box-shadow: 0 5px 0 #232323;
text-align: center;
width: 100%;
position: fixed;
// Add top 0
top: 0;
}
根据MDN:
fixed
Do not leave space for the element. Instead, position it at a
specified position relative to the screen's viewport and don't move it
when scrolled. When printing, position it at that fixed position on
every page. This value always create a new stacking context.
/* Copyright © 2015 Dynavio */
/* Main Site Settings */
*,
body {
padding: 0;
margin: 0;
}
body {
background-color: #FFFFFF;
}
.responsiveContainer {
width: 100%;
}
/* End Of Main Site Settings */
/* Header */
.header {
background-color: #000000;
padding: 10px;
padding-left: 0;
padding-right: 0;
box-shadow: 0 5px 0 #232323;
text-align: center;
width: 100%;
position: fixed;
}
.navbar {
background-color: #131313;
padding: 10px;
}
.navElem {
display: inline;
margin: -2px;
}
.navLink {
text-decoration: none;
padding: 10px;
padding-top: 11px;
color: #FFFFFF;
font-family: SinkinSans;
transition: all 0.5s;
-moz-transition: all 0.5s;
-webkit-transition: all 0.5s;
-o-transition: all 0.5s;
}
.navLink:hover {
background-color: #0044FF;
box-shadow: 0 5px 0 #01268A;
}
.navLink:visited {
color: #FFFFFF;
}
.active {
background-color: #0044FF;
box-shadow: 0 5px 0 #01268A;
}
/* End Of Header */
/* Site Content */
.startBox {
background-color: #0044FF;
position: relative;
top: 50px;
}
/* End Of Site Content */
/* Alignment Classes */
.alignLeft {
text-align: left;
}
/* End Of Alignment Classes */
<div class="responsiveContainer">
<div class="header">
<div class="navbar">
<ul>
<li class="navElem"><a href="#" class="navLink active">Home Page</a>
</li>
<li class="navElem"><a href="#" class="navLink">Our Products</a>
</li>
<li class="navElem"><a href="#" class="navLink">Contact Us</a>
</li>
<li class="navElem"><a href="#" class="navLink">About Us</a>
</li>
</ul>
</div>
</div>
<div class="startBox">
<p>dwddwwdwdd</p>
</div>
</div>
您需要将 <div class="header">
放在具有定义高度的 div 中,例如:
<div class="heightTest">
<div class="header">
<div class="navbar">
<ul>
...
</ul>
</div>
</div>
</div>
和css:
.heightTest{height:90px;}
Jsfiddle:http://jsfiddle.net/vwzhda41/2/
我正在制作一个新网站,但 header 有问题...我将 header 的位置设置为固定,这有效,但 header 下面的内容=22=] 被隐藏了。我试图用 margin-top: 10px
将内容向下移动,但它所做的只是将 header 向下移动。
Link 到 jsfiddle:
尝试使用
padding-top: 58px;/*the height of the header*/`
而不是
margin-top:10px;
将padding-top:58px;
添加到.responsiveContainer
并将top:0;
添加到.header
。
.responsiveContainer {
width: 100%;
// Add padding top
padding-top: 58px;
}
.header {
background-color: #000000;
padding: 10px;
padding-left: 0;
padding-right: 0;
box-shadow: 0 5px 0 #232323;
text-align: center;
width: 100%;
position: fixed;
// Add top 0
top: 0;
}
根据MDN:
fixed
Do not leave space for the element. Instead, position it at a specified position relative to the screen's viewport and don't move it when scrolled. When printing, position it at that fixed position on every page. This value always create a new stacking context.
/* Copyright © 2015 Dynavio */
/* Main Site Settings */
*,
body {
padding: 0;
margin: 0;
}
body {
background-color: #FFFFFF;
}
.responsiveContainer {
width: 100%;
}
/* End Of Main Site Settings */
/* Header */
.header {
background-color: #000000;
padding: 10px;
padding-left: 0;
padding-right: 0;
box-shadow: 0 5px 0 #232323;
text-align: center;
width: 100%;
position: fixed;
}
.navbar {
background-color: #131313;
padding: 10px;
}
.navElem {
display: inline;
margin: -2px;
}
.navLink {
text-decoration: none;
padding: 10px;
padding-top: 11px;
color: #FFFFFF;
font-family: SinkinSans;
transition: all 0.5s;
-moz-transition: all 0.5s;
-webkit-transition: all 0.5s;
-o-transition: all 0.5s;
}
.navLink:hover {
background-color: #0044FF;
box-shadow: 0 5px 0 #01268A;
}
.navLink:visited {
color: #FFFFFF;
}
.active {
background-color: #0044FF;
box-shadow: 0 5px 0 #01268A;
}
/* End Of Header */
/* Site Content */
.startBox {
background-color: #0044FF;
position: relative;
top: 50px;
}
/* End Of Site Content */
/* Alignment Classes */
.alignLeft {
text-align: left;
}
/* End Of Alignment Classes */
<div class="responsiveContainer">
<div class="header">
<div class="navbar">
<ul>
<li class="navElem"><a href="#" class="navLink active">Home Page</a>
</li>
<li class="navElem"><a href="#" class="navLink">Our Products</a>
</li>
<li class="navElem"><a href="#" class="navLink">Contact Us</a>
</li>
<li class="navElem"><a href="#" class="navLink">About Us</a>
</li>
</ul>
</div>
</div>
<div class="startBox">
<p>dwddwwdwdd</p>
</div>
</div>
您需要将 <div class="header">
放在具有定义高度的 div 中,例如:
<div class="heightTest">
<div class="header">
<div class="navbar">
<ul>
...
</ul>
</div>
</div>
</div>
和css:
.heightTest{height:90px;}
Jsfiddle:http://jsfiddle.net/vwzhda41/2/