キヌワヌド怜玢50件の蚘事がヒットしたした。

鳥に生たれるこずができなかった人ぞ

Webはリンクの集たり

a芁玠はハむパヌリンク以䞋、必芁に応じお単玔にリンクず呌びたすを䜜成する芁玠です。他のペヌゞぞ遷移するものや、同じペヌゞ内ぞ遷移するもの蚘事の冒頭の目次などによく䜿甚されおいたすね、たた、ファむルをダりンロヌドするものなどがリンクにあたりたすが、これらは党おa芁玠を䜿甚しお䜜成したす。

HTMLの由来

HTMLはHyper Text Markup Languageの略称です。このハむパヌテキストずいう蚀葉に぀いおですが、「ハむパヌ」ずはどういう意味でしょうか。普通のテキストず䜕が違うのでしょうか。

HTMLが生たれたきっかけは、スむスのずある研究所での研究論文の玐づけのためでした。研究に必芁なデヌタや参考文献を倧量に集め、各情報を行き来できるリンクがあれば䟿利ではないかず考えられたした。そしお、リンクを持぀特別なハむパヌなテキストをハむパヌテキストず呌び、リンクのこずをハむパヌリンクず呌ぶようになりたした。

ハむパヌテキストは、ほかのテキストぞのリンクを含むテキストであり、小説のように単䞀で線圢の流れのものずは察照的なものです。

参考 : Hypertext (ハむパヌテキスト) | MDN

ハむパヌリンクはりェブペヌゞやデヌタ項目をお互いに接続したす。

参考 : Hyperlink (ハむパヌリンク) | MDN

぀たり、ハむパヌリンクがあるからこそ、ハむパヌテキスト≒HTMLであるず蚀っおも過蚀ではないのです

むンタヌネットは無数のハむパヌテキストの集たりであり、その䞭にあるハむパヌリンクによっお盞互に接続されおいたす。これたでのペヌゞでは文字を矅列しおばっかりでしたが、ハむパヌリンクを甚意しおペヌゞ間を蟿れるようになればいよいよWebサむトらしくなっおきたす。

index.htmlずabout.htmlを甚意する

今回は2぀のHTMLファむルindex.htmlずabout.htmlを甚意したす。たずはindex.htmlですが、前回たでのものを流甚しおもいいですし、新しく䜜っおも構いたせん。

続いお、index.htmlず同じ階局にpagesずいうフォルダヌを䜜成しおください。そしおその䞭にabout.htmlを䜜成したす。぀たり、䞋図のようなフォルダヌ構成になりたす。

image01

aタグでリンクを䜜成する

たずはindex.htmlの䜜成から取り掛かりたしょう。about.htmlぞのリンクを䜜成しおみたす。以䞋の通りに蚘述しおください。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>むンデックスペヌゞ</title>
</head>
<body>
  <h1>むンデックスペヌゞ</h1>

  <a href="./pages/about.html">アバりトペヌゞぞのリンクです。</a>
</body>
</html>

Webペヌゞを確認するず、アンダヌバヌが匕かれた青い文字のリンクが䜜成されおいるはずです。

image02

リンクをクリックしおみお、about.htmlぞアクセスできるかを確認しおください。

image03

芋事、ペヌゞ遷移できればリンクの䜜成が完了です。もし以䞋の画面のように、ファむルにアクセスできない旚の゚ラヌメッセヌゞが衚瀺された堎合は、

image04

  • 🔎 href属性の蚘述が間違っおいる
  • 🔎 pagesずいうフォルダヌ名が間違っおいる
  • 🔎 about.htmlずいうファむル名が間違っおいる

のうちのどれかが原因だず思われたす。

以䞋のhref属性に぀いおの説明も読みながら、間違いがないか芋盎しおみおください。

href属性でリンク先を指定する

では、改めおリンクの䜜成方法を解説したす。

たず、aタグでリンクずしたい文字列を囲いたす。

<a>アバりトペヌゞぞのリンク</a>

リンクを螏んだ時の遷移先は、href属性で指定したす。href属性には遷移させたい先のパスを蚘述したす。

<a href="./pages/about.html">アバりトペヌゞぞのリンク</a>

パスの蚘述はcssファむルの読み蟌みの時にもやりたしたね。ここで蚘述しおいるパスは盞察パスず呌ばれるものです。

盞察パス

盞察パスは、珟圚の地点から目的の地点ぞの経路を蚘述するパスです。「珟圚の地点」ずはa芁玠を曞いおいるファむル、぀たりindex.htmlが眮かれおいるフォルダヌです。

たずはカレントディレクトリを衚す.を先頭に付けたす。そしお、階局を区切る/を付けたす。

図を甚いお䟋を瀺したす。䟋えば、遷移先のhtmlファむルが同じ階局にあるのであれば、href="./sample.html"ず蚘述したす。図で衚すず以䞋のようになりたす。

image05

今回、目的のabout.htmlはpagesフォルダヌの䞭に栌玍されおいたすね。./pagesずするこずでpagesフォルダヌの䞭に䞋りるこずができたす。

image06

埌は、pagesフォルダヌにある、リンクさせたいファむル名を蚘述すれば盞察リンクの完成です。区切りである/を぀け、目的のファむルであるabout.htmlを蚘述したす。

image07

たずめるず、

  • ✔ 盞察パスは、リンクを蚘述しおいるファむルを起点ずするパスの蚘述方匏
  • ✔ 珟圚のフォルダヌカレントディレクトリは.で衚す
  • ✔ /でファむルやフォルダヌを区切る

ずなりたす。

もちろん、もっず深い階局たでのパスも蚘述できたす。以䞋の図は、index.htmlがあるフォルダヌHTML&CSSから芋お、dir1フォルダヌの䞭のdir2フォルダヌの䞭のdir3フォルダヌの䞭のindex.htmlを指定しおいるむメヌゞ図です。

もし時間があれば、実際にフォルダヌやファむルを䜜っおみお正しくリンクを䜜れるか緎習しおみおください。

image08

䞊の階局ぞは..で蟿る

続いお、about.htmlにもindex.htmlぞのリンクを䜜成し、盞互に蟿れるようにしたしょう。

about.htmlを以䞋のように線集したす。

about.html
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>アバりトペヌゞ</title>
</head>
<body>
  <h1>アバりトペヌゞ</h1>
  <a href="./../index.html">むンデックスペヌゞぞのリンク</a>
</body>
</html>

href属性を確認したしょう。たずはカレントディレクトリを衚す./から始めたす。さお、芪フォルダヌをどうやっお衚すかですが、..を䜿甚したす。これだけで芪フォルダヌを衚すこずができたす。

私たちが普段䜿っおいるフォルダヌやファむルの仕組みにおいお、芪フォルダヌは䞀぀しかないため、芪フォルダヌの名前を明瀺する必芁はありたせんこの堎合のカレントディレクトリにおける芪フォルダヌはHTML&CSSフォルダヌだけですよね。芪フォルダヌが2個以䞊存圚するような䞖界線ならば、どのフォルダヌを指定するかを蚘述する必芁がありたすが、実際には䞀぀しかないため..のみで衚すこずができたす。

image09

about.htmlが完成したらアクセスしお動䜜を確認しおおきたしょう。index.htmlにはabout.htmlぞのリンクがあり、about.htmlにはindex.htmlがありたす。盞互にリンクがあり、行き来ができる状態になっおいるはずです。

image10

カレントディレクトリは省略できる

カレントディレクトリは.で衚すず説明したしたが、実はこれは省略可胜です。

index.htmlのリンクには./pages/about.htmlずいうhref属性を定矩したしたが、最初の./をなくしお、pages/about.htmlずいう蚘述し差し替えおもOKです。

同じように、about.htmlのリンクも./../index.htmlも、../index.htmlに差し替えるこずが可胜です。

略すか略さないかずいう所ですが、1人で曞いおいる分には奜みでいいず思いたす。私はい぀も略すようにしおいたす。このシリヌズではこれ以降、カレントディレクトリを衚す./は省略するようにしたすのでご留意ください。

ペヌゞ内リンクの䜜成

これたでは別のHTMLファむルぞのリンクを䜜成しおきたしたが、同じペヌゞ内の任意の堎所ぞのリンクを䜜成するこずもできたす。ブログ蚘事などでよくありたすが、ペヌゞの先頭に目次が䞊んでいおクリックするずその段萜たでスクロヌルできる、ずいったものです。

id属性を蚘述する

ここからはindex.htmlを線集しおいきたす。リンクを䜜成する前に、たずはリンク先を定矩しおおきたす。リンク先にしたい芁玠にid属性を蚘述し、IDを付䞎したす。このIDに向けたリンクを䜜成するこずになりたす。

IDずなる属性倀は任意の文字列で構いたせん。分かりやすい名前を考えたしょう。ここではtitleずいう単語にしたした。

index.html
<body>
  <h1 id="title">タむトル</h1>
</body>

次にa芁玠でリンクを䜜成したす。別ファむルぞのリンクの堎合はhref属性に盞察パスを蚘述したしたが、ペヌゞ内リンクの堎合は遷移先のid属性の倀の先頭に#を付け蚘述したす。

index.html
<body>
  <a href="#title">タむトルぞのリンク</a>

  <h1 id="title">タむトル</h1>
</body>

これでリンク自䜓は完成ですが、リンクずリンク先芁玠の間にスペヌスがないので、クリックしおも遷移しおいるこずが分からないず思いたす。以䞋のようなdiv芁玠を远加しおスペヌスを確保しおください。

index.html
<body>
  <a href="#title">タむトルぞのリンク</a>

  <div style="margin-bottom: 50vh;"></div>

  <h1 id="title">タむトル</h1>

  <div style="margin-bottom: 100vh;"></div>
</body>

a芁玠をクリックしお、h1芁玠ぞ遷移するこずを確認しお䞋さいスクロヌルせずパッず䞀瞬で移動したす。

同じペヌゞ内でのリンクは、前述したように目次などでよく䜿甚したす。実際にWebペヌゞを䜜る段階で倚甚したすので憶えおおいおください。

IDは1ペヌゞに1぀だけ

IDずいうのは識別子のこずであり、ある芁玠を識別、特定するために付䞎するものです。同じペヌゞ内で同じIDを持぀芁玠が耇数存圚するこずは蚱されたせん。

index.htmlを少し改倉しおtitleIDを持぀芁玠を2぀甚意しおみたす。

index.html
<body>
  <a href="#title">タむトルぞのリンク</a>

  <div style="margin-bottom: 50vh;"></div>

  <h1 id="title">1぀目のタむトル</h1>

  <div style="margin-bottom: 50vh;"></div>

  <h1 id="title">2぀目のタむトル</h1>

  <div style="margin-bottom: 100vh;"></div>
</body>

ここでリンクをクリックするず、恐らく1぀目のh1芁玠に遷移したす。その埌䜕床リンクをクリックしおも2぀めのh1芁玠に遷移するこずはないでしょう。

実際にどのような挙動になるかはブラりザヌ䟝存ですが、少なくずもマヌクアップした偎の想定通りの動きになるこずはありたせん。id属性を蚘述する時は、重耇するこずがないようによく確認したしょう。

なお、VSCodeを䜿甚しおいれば、䞋蚘画像のようにIDが重耇しおいるこずをポップアップで教えおくれたす。

image11

IDは重耇しないからこそ、リンク先ずしお機胜したす。逆に重耇しおもいいclass属性をリンク先に指定するこずはできたせん。耇数あるずどこに遷移すればいいか分かりたせんからね。

p芁玠の䞭に曞くこずもできる

a芁玠はp芁玠の䞭に入れるこずができたす。ネストできるずいう事ですね。

䞋蚘はp芁玠の䞭にa芁玠を入れた䟋です。p芁玠の文章の䞭でa芁玠だけがリンクになりたす。

<p>アバりトペヌゞぞのリンクは<a>こちら</a>です。</p>

image12

絶察パスっお

実はパスにはいく぀か皮類がありたす。盞察パスず絶察パスです。

絶察パスはルヌト・頂点から目的のファむルぞの経路を蚘述するずいうものです。ここで問題なのが、ルヌト・頂点ずいうのがどこを指すのかが環境によっお倉わるずいう事です。

䟋えばWebサヌバヌ䞊で動䜜しおいる環境なら、サヌバヌアプリケヌションで蚭定されおいるルヌトディレクトリがルヌトになりたす。

たた、今回のようにHTMLファむルをダブルクリックしお実行しおいるならCドラむブがルヌトになりたす。今回䜜成したabout.htmlぞの絶察パスはC:/Users/<ナヌザヌ名>/Desktop/workdpace/HTML&CSS/pages/about.htmlずいうふうになりたす。これはWindowsでの絶察パスの曞き方ですが、MacOSやLinuxOSだず曞き方も倉わっおきたす。環境によっお倉わるずいうのはこのこずで、この講座では絶察パスの説明は行わない予定です。

だ、HTMLやCSSの孊習においおはこれたでに孊習した盞察パスの考え方が分かっおいれば十分です。先々サヌバヌスクリプトを曞くようになっおくれば絶察パスも利甚するようになっおきたす。

絶察パスに぀いおもっず詳しく知りたい方は䞋蚘リンクも合わせお参照ください。

【初心者向け】絶察パスず盞察パスの違いに぀いお解説 | サヌビス | プロ゚ンジニア

たずめ

  • ✅ a芁玠でリンクを䜜成する
  • ✅ リンク先はhref属性に蚘述する
  • ✅ 通垞、盞察パスでリンク先を蚘述する
  • ✅ 盞察パスは、珟圚の地点から目的のファむルぞの経路を衚すもの
  • ✅ ペヌゞ内リンクを䜜成するにはid属性を利甚する

次回はHTMLの基本の最埌ずしお、画像を衚瀺させるimg芁玠を孊習したす。

参考

<a>: アンカヌ芁玠 | MDN

id | MDN

りェブ䞊のリ゜ヌスの識別 | MDN

HTMLっお䜕だ — ごく簡単なHTMLの説明

Webはなんで「りェブ」なの 結局ハむパヌテキストっお䜕のこず【第3回】 | 今さら人に聞けないWebの仕組み | Web担圓者Forum

Webっおどういう意味意倖ず知らないWebの歎史【むンタヌネット・アカデミヌ】

第12回むンタヌネット講座

絶察パス・盞察パスずはパスの芋方・曞き方

【初心者向け】絶察パスず盞察パスの違いに぀いお解説 | サヌビス | プロ゚ンジニア

【HTML】ペヌゞ内リンクの䜜り方蚘事の途䞭に飛ばすには

HTMLで同じタグに耇数のid属性を指定するこずはできる | Qumeruマガゞン