Html
中 Link
Html
Link
link
是
html
外部資源連結元素,規定了目前文檔與外部資源的關系
常用場景
- 連結一個外部的樣式表
<link href="main.css" rel="stylesheet">
- 建立站點圖示
擴充用法:指定<link rel="icon" href="favicon.ico">
,當在ios裝置上使用添加到主屏按鈕将網站添加到主螢幕上時,會使用該指定的圖示資源作為添加到主屏上的圖示。rel="apple-touch-icon"
<link rel="apple-touch-icon" sizes="114x114" href="apple-icon-114.png" type="image/png">
<link rel="apple-touch-icon" sizes="72x72" href="apple-icon-114.png" type="image/png">
不同裝置會自動選用相對應的sizes屬性的圖示,系統會自動對設定的圖示添加圓角和高光,如果不想用該效果,可以将<link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-icon-114.png" type="image/png">
改為apple-touch-icon
apple-touch-icon-precomposed
- 提供了
屬性,可以根據不同的媒體條件加載不同的資源media
<link href="print.css" rel="stylesheet" media="print">
<link href="mobile.css" rel="stylesheet" media="screen and (max- 600px)">
-
屬性設定rel
預加載提升頁面加載性能,preload、prefetch
屬性設定是否使用crossorigin
請求提供安全特性CORS
<link rel="preload" href="myFont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
屬性
-
命名連結文檔和目前文檔的關系,常用值有下rel
-
提示浏覽器該資源需要在使用者點選連結之前進行DNS查詢和協定握手dns-prefetch
-
定義代表頁面的資源圖示,icon
,media
和type
屬性允許浏覽器選擇其上下文中最合适的圖示.如果多種資源符合條件,浏覽器會選擇最後一個sizes
-
更早和更高優先級的加載子產品依賴腳本,可以極大提高大型依賴樹的解析請求效率。modulepreload
<link rel="modulepreload" href="lib.mjs">
<script type="module" src="main.mjs"></script>
// main.mjs
import { func } from './lib.mjs'
-
使浏覽器預加載目前頁面所需的腳本、樣式等檔案,而不是等到解析script和link标簽時才加載。可以使資源更早的下載下傳并可用,更不易阻塞頁面的初步渲染,進而提升性能。實驗有效,需要使用as屬性指定資源類型。preload
<link rel="preload" href="index.js" as="script"/>
-
使浏覽器預加載其他頁面會用到的資源,不會在目前頁面渲染時加載資源,而是利用浏覽器空閑時間來下載下傳,當進入下一頁面時就直接從disk cache裡面取,既不影響目前頁面渲染,又提高了其他頁面加載渲染的速度。實驗有效,在其他頁面中會顯示該資源從prefetch cache中擷取,不用指定as屬性。prefetch
<link rel="prefetch" href="next.js" />
-
建議浏覽器事先擷取連結的資源,并建議将預取的内容顯示在螢幕外,以便在需要時可以将其快速呈現給使用者,使用chrome試驗沒有生效。prerender
-
指定目前頁面最高優先級的資源,會優先加載該資源,實驗發現沒有效果.subresource
<link rel="subresource" href="styles.css">
-
定義要用作樣式表的外部資源stylesheet
-
-
該屬性僅在as
元素設定了<link>
時才能使用。它規定了rel="preload"
元素加載的内容的類型,對于内容的優先級、請求比對、正确的内容安全政策的選擇以及正确的<link>
請求頭的設定,這個屬性是必需的。Accept
-
此枚舉屬性指定在加載相關資源時是否必須使用crossorigin
. 啟用CORS
的圖檔 可以在CORS
元素中重複使用, 并避免其被污染. 可取的值如下:<canvas>
-
會發起一個跨域請求(即包含anonymous
頭). 但不會發送任何認證資訊 (即不發送Origin: HTTP
,cookie
證書和X.509
基本認證資訊). 如果伺服器沒有給出源站憑證 (不設定HTTP
頭), 資源就會被污染并限制使用。Access-Control-Allow-Origin: HTTP
-
會發起一個帶有認證資訊 (發送use-credentials
,cookie
證書和X.509
基本認證資訊) 的跨域請求 (即包含HTTP
頭). 如果伺服器沒有給出源站憑證 (不設定 Access-Control-Allow-Origin: HTTP 頭), 資源就會被污染并限制使用。Origin: HTTP
- 當不設定此屬性時,資源将會不使用
加載 (即不發送CORS
頭),這将阻止其在Origin: HTTP
元素中進行使用。若設定了非法的值,則視為使用 anonymous。<canvas>
-
-
此屬性指定被連結資源的href
。URL
可以是絕對的,也可以是相對的。URL
-
訓示資源的相對重要性,隻有存在importance
或rel=“preload”
時,rel=“prefetch”
屬性才能用于importance
元素。 優先級提示使用以下值委托:<link>
-
表示沒有偏好。 浏覽器可以使用其自己的啟發式方法來确定資源的優先級。auto
-
向浏覽器訓示資源具有高優先級。high
-
向浏覽器訓示資源的優先級較低。low
-
-
是目前資源檔案的哈希值,以integrity
編碼的方式加密,這樣使用者能用它來驗證一個擷取到的資源,在傳送時未被非法篡改。base64
-
這個屬性規定了外部資源适用的媒體類型。它的值必須是"媒體查詢"。這個屬性使得使用者代理能選擇最适合裝置運作的媒體類型。media
-
這個屬性定義了包含相應資源的可視化媒體中的icons的大小,它隻有在rel包含icon的link類型值中生效。sizes
-
這個屬性被用于定義連結的内容的類型,這個屬性的值應該是像type
等text/html,text/css
類型。MIME