アンカータグはidやnameという属性を持っている.wbdv.htmlに<a id="web" name="dev">と書くと,wbdv.html#webやwbdv.html#devというURIでアンカータグをtopとするリンクがはれる.
しかし,ブラウザによっては何回かリンクを踏むと毎回ずれた位置に飛んだり,固定ヘッダー分のmargin-topを設定しても無効になってしまうことが起こる.これはなぜなのか.
実は,インライン要素にページ内リンクのidを振っても,ブラウザによっては定まった位置に決まらないのである.なのでa[id="web"]{display: block;}とするなど,一度ブロック要素にすることで,毎回同じ位置にページ内リンクが決まる.
これはすべてのインライン要素に当てはまる.ページ内リンクはアンカーでなくてもspanやbrでも機能するが,ブロック要素にすることでほとんどのHTML要素にはれるようになる.
aタグへのページ内リンクが不安定な原因