Home >Web Front-end >CSS Tutorial >Why Does My Fixed Header Shift Downward After Setting `position: fixed;`?
Why does my title bar move down after setting it to fixed?
Question content
My title bar is placed between the page title and navigation bar, but when I set it to position:fixed; The margins have increased. The following is the Codepen link:
[Codepen link]
Question Answers
You encountered a problem called Margin Collapse problem. Setting the title bar to fixed moves it out of the normal document flow. Therefore, the form becomes the first normal document flow element. This means that the top margin of the form will collapse or overlap the top margin of the body element. 1
This means that the body element will have a larger top margin and your fixed element will be positioned relative to the body since you are not setting any top value. 2
To avoid this situation, you can choose the following method:
Resolved code:
<p>body {<br> padding-top:1px; /<em>Disable margin folding</em>/<br>}</p><p>#header{</p><pre class="brush:php;toolbar:false">background-color:#191919; height:3rem; width:100%; position:fixed;
}
font-family: 'Permanent Marker', cursive;
color:white;
margin-left:1.5rem;
float:left;
font-size:25px;
}
ul{
list-style:none;
display:flex;
flow-direction:row;
justify-content:space-around;
}
background-color:#191919;
float:left;
width:100%;
}
margin-top:45rem;
margin-left:25%;
margin-right:25%;
}
img{
width:70%;
height:70%;
}
a {
text-decoration:none;
font-family: 'Work Sans', cursive;
color:white;
font-size:12px;
}
width:100%;
box-shadow:3px 3px 5px gray;
}
font-family:'Roboto', cursive;
font-size:14px;
font-weight:bold;
color:#686868;
box-shadow:3px 3px 5px grey;
padding: 5px 5px;
}
.catalog{
margin-left:10%;
margin-right:10%;
margin-top: 5rem;
width:90%;
float:left;
}
width:100%;
box-shadow:3px 3px 5px gray;
}
margin-top:5rem;
margin-left:25%;
margin-right:25%;
width:50%;
}
display:flex;
flow-direction:row;
flex-wrap:wrap;
}
font-family: 'Oswald', cursive;
font-size: 20px;
text-align:center;
font-size:16px;
}
li{
padding: .25rem .5rem;
}
a:hover{
color:#4ba0c8;
}
.nav-link{
}
.course-label{
font-family: 'Baloo Bhaijaan', cursive;
font-size:18px;
}
.images{
background-color:#191919; height:3rem; width:100%; position:fixed;
}
.images:hover{
background-color:#99d3ff;
color:#99d3ff;
}
@media (min-width:555px){
#nav-bar{
margin: 5% 5%; padding: 3% 3%; width: 10vw; height:10vw; color:#d2d2d2;
}
#form{
float:right; width:20rem; margin-right:1rem;
}
}
@media (min-width:360px){
a{
margin-top:5rem;
}
#description{
font-size:16px;
}
#header-img{
font-size:20px;
}
#header{
font-size:30px;
}
}
<h1> <nav id="nav-bar"></p> <pre class="brush:php;toolbar:false">height:4.5rem;
The above is the detailed content of Why Does My Fixed Header Shift Downward After Setting `position: fixed;`?. For more information, please follow other related articles on the PHP Chinese website!