ich habe das folgende was funktioniert, aber verstehe nicht, warum das erste div muss an Ort und Stelle sein, um "nach Hause" zu bekommen, um im Körper anzuzeigenwarum muss a1 div um das nav tag gelegt werden
html,body {
height: 100%;
margin:0;
}
#a1{
height:50px;
}
nav{
text-align:right;
position: fixed;
top: 0;
background: white;
width: 100%;
height:35px;
padding-top:15px;
background:black;
}
a{
color:white;
text-decoration:none;
margin:5px;
}
#section1{
background-color:blue;
color:white;
}
#section2{
background-color:green;
color:white;
}
#section3{
background-color:purple;
color:white;
}
.size{
width:100%;
height:700px;
}
.anchor{
display: block;
height: 50px; /*same height as header*/
margin-top:-50px ; /*same height as header*/
visibility: hidden;
}
<div id='a1'>
<nav>
<a href ='#home' >home</a>
<a href ='#about' >about</a>
<a href ='#contact' >contact</a>
<pre style='float:right'> </pre>
</nav>
</div>
<span class='anchor' id='home'></span>
<div id='section1' class='size'>Home</div>
<span class='anchor' id='about'></span>
<div id='section2' class='size'>about
</div>
<span class='anchor' id='contact'></span>
<div id='section3' class='size'>contact
</div>
, das ein Problem behebt, aber eine andere schafft. Sehen Sie, was passiert, wenn Sie auf die anderen Links klicken. Sie bekommen 50px von weißem Raum jetzt – DCR
ändern zu '# home' statt, siehe aktualisierte Antwort – dippas
interessant, wenn ich padding-top ändern: 50px zu margin-top: 0px es funktioniert auch. – DCR