• ベストアンサー

HTMLのアンカータグについて

HTMLでページ内のリンクやほかのページからのリンクの着地側に<a id="**"></a>を利用しますが**はページ内では同一の名称はNGです。 **がページ内リンクの着地とページ外からのリンク着地で同じ場合もNGとなるのでしょうか。お手数ですがご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1341/1821)
回答No.1

HTMLページ内でのDOMに、全く同じID名を割り振るのは強く非推奨な行為ではありますが、HTML5構文的に構造上誤った記述では無く、必要であれば同一ID名の要素が同じwebページ内に複数存在しても構いません。 なので「NGですよね?」と問われれば、一般的には避けるべきとされているが絶対的なルールではない~が答えとなります。 因みにアンカーリンク等でURLから直にID名を名指しして飛ばす場合の… - https://example.com/foo/bar.html#p1 ~のようなリンクを記述してクリックした場合。すべてのブラウザソフトはそのリンク先のwebページ内を最上部、左端から内部HTMLを読み込みながら解析して行き、一番最初に発見したID名の箇所で検索を停止、そこを目的地として表示して終わります。これは全てのブラウザソフトの標準的な仕様ですね。 従って同一webページ内に複数の同じID名が割り振られていたとしても、単にリンクを張って飛ばすだけであれば、特に挙動などがおかしくなる事も無く。前述のような内部処理がなされて、普通に一番最初のID名が割り振られた場所に移動して終了です。 コレに何かID名依存でスタイルシートを適用していたり、何らかのJavascript的な処理を行っている場合は、またややこしくなって変になる場合が考えられますが…そうでなければCLASS名とほとんど同じ様な挙動となります。

okanzai
質問者

お礼

ありがとうございました。助かりました。

Powered by GRATICA
すると、全ての回答が全文表示されます。

関連するQ&A