scroll-behavior というプロパティをアンカーがある親要素に指定する。
<a href="#target">smooth scroll link</a>
<div class="container">
...
<div id="target">...</div>
...
</div>
.container {
height: 100vh;
overflow: scroll;
scroll-behavior: smooth;
}
ヘッダーなどが固定の場合は、アンカー位置とヘッダーが重なったりするので、それを回避する場合は、scroll-margin-topプロパティを使用する。
/* ページ全体に適用 */
html {
scroll-behavior: smooth;
scroll-margin-top: 10em;
}