aタグへのページ内リンクが不安定な原因

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