Solution 1 :

Without seeing your HTML code it is a bit guessing, but I’ll give it a go.

Adding a position: fixed to an element will make it flow above the other content. The element is taken out of the document flow. So the overlapping is natural behavior.

To prevent the content to be hidden, you should add a padding to the parent of the boxes. I’m guessing that when you add the following code, it solves the problem

body {
   padding-top: 3rem; /* should be at least the height of the header*/
}

The second question about the position of the header can be fixed by the following code:

/* option 1, add a left position:*/
header {
   ... 
   left: 0;
}

/* option 2, remove the width, use left and right position instead: */
header {
   ... 
   /* width: 100%; remove this line */
   left: 0;
   right: 0;
}

Solution 2 :

body {
margin: 0;
}

body {
  margin: 0;
}

header {
  padding: 0.5rem;
  text-align: center;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background-color: beige;
  position: fixed;
  width: 100%;
  /*not cover whole width*/
  margin: 0;
}

.whole-container {
  margin-top: 2.0rem;
}
<body>
  <header>
    0000
  </header>

</body>

Problem :

Hello I have problem when I make header using html and css. I have my header in fixed position, but the content is covered up my header. I want my content position under header when I run it. One more, I set header width 100% but it shift to the right so it doesn’t cover up whole width on the screen.
[UPDATED]

enter image description here

<style>
@media(min-width: 468px) {
    body{
        background-color: aqua;
    }
    .container-1{
           display: flex; 
           /*
           align-items: flex-start;  -->box 1 lebih sempit ke atas
           align-items: flex-end;  -->box 1 lebih sempit ke bawah
           align-items: center;  -->box 1 lebih sempit ke tengah (atas bawah)
           flex-direction: column; -->flex box menjadi kolom
           */
        }
        .container-2{
            display: flex;
            /*
            justify-content: flex-end;
            justify-content: flex-start;
            */
            justify-content: space-between; /*ada spasi diantara kotak*/
        }
}
       .container-3{
           display: flex;
           flex-wrap: wrap;
       }
        
        .container-1 div, .container-2 div, .container-3 div{
            border:1px #000000 solid;
            padding:10px;
        }
        
        .box-1{
        flex:2;
        order:2;
        
        }
        .box-2{
            flex:1;
            order:1;
        }
        .box-3{
            flex: 1;
            order:3;
        }

        .container-2-box{
            flex-basis:20%;
        }

        .container-3-box{
            flex-basis: 10%;
            
        }
        header{
            padding: 0.5rem;
            text-align: center;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            background-color: beige;
           position: fixed;
            width: 100%;
            margin:0;
			
        }
        .whole-container{
            margin-top:2.0rem;
            
        }
        </style>
<html>
<head>
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <title>Flexbox</title>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    
</head>

<body>
    <header>
        <h1> Flexbox</h1>
    </header>
    <div class="whole-container">
    <div class="container-1"> 
        <div class="box-1">
            <h3>Box 1</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="box-2">
            <h3>Box 2</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="box-3">
            <h3>Box 3</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
    </div>

    <div class="container-2"> 
        <div class="container-2-box">
            <h3>Box 4</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-2-box">
            <h3>Box 5</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-2-box">
            <h3>Box 6</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
    </div>
    <div class="container-3"> 
        <div class="container-3-box">
            <h3>Box 7</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-3-box">
            <h3>Box 8</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-3-box">

            <h3>Box 9</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-3-box">
            <h3>Box 10</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-3-box">
            <h3>Box 11</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
        <div class="container-3-box">
            <h3>Box 12</h3>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        </div>
    </div>
</div>
</body>
</html>

Comments

Comment posted by DaCurse

Please add some HTML to your snippet to reproduce the issue.

Comment posted by Rkv88 – Kanyan

hi please add html to help you

Comment posted by Ed2020

I have added html source

Comment posted by Ed2020

I have follow you instruction, and edit it a bit. I give .whole-container padding-top: 5.0 rem and header top:0;. Result, header become 100% wide and no space above it. The content isn’t covered up anymore by header. Thank you very much

Comment posted by GreyRoofPigeon

Yeah, I had to guess it. That’s why I wrote “the parent of the boxes”, which was in your case

By