HTML 超連結 <a> 標籤 (tag)
全世界的網頁或網路資源利用連結彼此互相引用互相鏈接,形成一個大互聯網,而 HTML <a> tag 就是用來建立超連結 (hyperlink) -- 通往其他頁面、檔案、Email 地址、或其他 URL 的超連結。
舉一個使用實例:
<a href="https://www.youtube.com/">這個連結</a>會連到 YouTube<br>
<a href="https://www.google.com/">這個連結</a>會連到 Google<br>
<a href="/html/image-img-tag.html">這個連結</a>會連到 Fooish 圖片標籤教學頁面
實際顯示在網頁上的結果如下:
<a> 標籤的屬性 (attributes)
href
指定一個 URL 看連結要連到哪邊。
target
指定在什麼地方打開連結。
target 有下面這些屬性值:
_self
: 預設值,在當前視窗開啟_blank
: 在新視窗開啟_parent
: 在上一層父視窗開啟_top
: 在最頂層父視窗開啟- framename: 指定在哪個框架中開啟
舉例:
<a href="https://www.fooish.com/" target="_blank">Fooish 技術教學</a>
上面這例子的結果:
rel
指定當前頁面和連結目標彼此之間的關係。
rel 有下面這些屬性值:
nofollow
: 禁止搜尋引擎 (Google) 將該連結與你的網頁關聯在一起,或禁止從你的網頁索引連結網頁noreferrer
: 如果有使用者點擊該連結,不要送出Referer:
header 資訊給連結網站noopener
: 如果用target="_blank"
開啟另一個頁面時,不要給連結頁面設置window.opener
(一個 JavaScript 變數) 權限。設定 noopener 的好處是提高安全性,同時避免讓連結頁面影響到當前頁面的效能。prev
: 指定彼此是上一個的關係 (例如屬於同樣主題文章的上一篇)next
: 指定彼此是下一個的關係 (例如屬於同樣主題文章的下一篇)
你可以用空白分隔開 (space-separated) 多個值。
舉個例子:
<a rel="nofollow noopener" href="https://examples.com/">外站連結</a>
download
download 用來指示瀏覽器當使用者點擊連結時,直接下載連結指向的資源,download 的屬性值可以設定下載檔案的檔名 (file name),如果省略屬性值則會使用原始檔名。
舉個例子:
<a href="/assets/img/fooish.jpg" download="myphoto.jpg">下載圖片</a>
結果如下:
ping
ping 用來做連結點擊的監控或追蹤 (tracking),當有人點連接時,會發送一個 HTTP POST 通知 ping 所指定的位址 (URL),如果有多個 URL 則用空白分隔開。
使用例子:
<a href="https://www.fooish.com/html/" ping="https://www.fooish.com/trackpings">
使用者點擊連結時,瀏覽器會在背景 (background) 送出 ping 給指定的 server 追蹤連結點擊。
referrerpolicy
指定發出請求 (request) 時,瀏覽器應該要送出什麼 referrer (請求來源位址)。
referrerpolicy 有這些屬性值:
no-referrer
: 不送出Referer:
headerno-referrer-when-downgrade
: 這是預設的行為,如果當連接的協議有降級 (即 HTTPS 連往非 HTTPS 資源),則不送出Referer:
headerorigin
: 送出 origin 當作 referrer。所謂的 origin 是指 URL 中的 protocol + host + port 的部分,不包含路徑或網址參數訊息,舉個例子 origin 像是 https://www.fooish.comorigin-when-cross-origin
: 如果連往不同的 origin,則只送出 origin (protocol + host + port) 作為 referrer,只有連往同樣 origin 的頁面或資源,才送出完整資訊的 referrer (包含路徑和網址參數)unsafe-url
: 這個是最寬鬆的策略,不管任何情況都送出 referrer
各類型的超連結語法範例
錨定連結
跳往同頁面不同區塊的位置。
使用方法:
<a href="#some-section-id">連結文字</a>
上面的連結點擊後會跳去 id="some-section-id" 的 HTML 元素區塊。
例如跳到這邊:
<div id="some-section-id">
hello
</div>
圖片連結
<a> 可以包住其他 HTML 元素,讓它們可以也是一個連結。
例如建立一個圖片連結:
<a href="https://example.com/" target="_blank">
<img src="https://source.unsplash.com/WLUHO9A_xik/600x400">
</a>
實際顯示結果如下:
電子郵件超連結 mailto:
<a href="mailto:電子郵件信箱">連絡信箱</a>
如果瀏覽器有支援的話,點了連結會開啟郵件編輯器寫信。
使用範例:
<a href="mailto:contact@fooish.com">Fooish 連絡信箱</a>
實際顯示結果如下:
電話號碼連結 tel:
<a href="tel:電話號碼">連結文字</a>
其中電話號碼是遵循 RFC 3966 標準格式。
舉個例子:
<a href="tel:+491570156">+49 157 0156</a>
實際呈現結果如下:
如果你的裝置支持,例如是手機,點連結就可以直接撥打電話。
FTP 超連結 ftp:
<a href="ftp://someftpserver.com/">瀏覽 FTP server</a>