fixedなヘッダーがある場合、何も対策していないとスムーススクロールの際にヘッダーとスクロール先の要素が被ってしまう。いう場合に一般的には以下のようにヘッダーの高さ分スクロール位置をずらすことで対策をしている。href="./about.html#message">のようにページ外からのアンカーリンクに関してはヘッダーがだだ被りしてしまう。ページ外からの遷移の場合は前述の対策が適用されないので当然。対策方法DEMOアンカーリンクのターゲットとなる要素に対して、以下のCSSを適用する。100px;}margin-top及びpadding-topの値はヘッダーの高さ。このスタイルの与え方は以下の2パターンある。100px;}:targetはハッシュの対象となっている要素。しておけばページ外からのリンクの場合だけ対象の要素に対してスタイルを適用することが出来る。:not(.js-scroll-target)は、ページ外からハッシュ付きで遷移した後さらにスムーススクロールをした場合にヘッダーがずれてしまうことに対する対策。スムーススクロールをする前のタイミングで$target.addClass('js-scroll-target')とかしてこのスタイルが適用されないようにするとずれがなくなる。既存サイトの場合、出来るだけ今あるソースコードに手を入れずに修正したい場合が多々あるのでそういう場合この方法が便利。100px;}すごい普通な感じ。このu-anchorTargetクラスを愚直にアンカーリンクの対象となる要素に与える。クラスを与える手間はあるが、スムーススクロールの際にヘッダーの高さ分JSでスクロール位置をずらしたり、:targetの方法のようにスクロール前に特定のクラスを付与したりする必要がない。ヘッダー被りの対策コードがこのスタイルただ1点に集中するため後から見た際にコードの意図がわかりやすい...と思う。