Расширяя ответ charles.cc.hsu , мы можем сделать это для элементов произвольной высоты, используя CSS-модуль vh
, который относительно высоты области просмотра.
HTML:
<span class="anchor" id="section1"></span>
<div class="section"></div>
CSS:
.anchor{
display: block;
height: 50vh; /* 50% viewport height */
margin-top: -50vh;
visibility: hidden;
}
vh
поддерживается в IE9 и более поздних версиях, поэтому использовать его довольно безопасно.