メインコンテンツへスキップ

link要素


1.仕様

LINK要素 は、
現在の文書と
外部のリソースとの
関係を指定します。

link

外部リソースにリンク (a media-independent link)

種類
空要素

任意のコンテンツを持つことができない要素です。

カテゴリ
  • メタデータコンテンツ
  • フローコンテンツ(条件付き)
  • フレージングコンテンツ(条件付き)

itemprop属性が存在する場合、または body-ok のキーワードのみを含む rel属性が存在する場合は、フローコンテンツ, フレージングコンテンツ。

使用できるコンテキスト
  • メタデータコンテンツを受け入れる要素
  • head要素の子であるnoscript要素に 0個以上
  • フレージングコンテンツを受け入れる要素

メタデータコンテンツを受け入れる要素のコンテンツとして、使用できます。
head要素の子であるnoscript要素に 0個以上を そのコンテンツとして、使用できます。
フレージングコンテンツを受け入れる要素のコンテンツとして、使用できます。

メタデータコンテンツを受け入れる要素は、head要素 です。

フレージングコンテンツを受け入れる要素は、h1要素, h2要素, h3要素, h4要素, h5要素, h6要素, p要素, pre要素, output要素, progress要素, meter要素, label要素, datalist要素, body要素, section要素, nav要素, aside要素, article要素, header要素, footer要素, main要素, address要素, li要素, dt要素, dd要素, caption要素, th要素, td要素, form要素, fieldset要素, search要素, blockquote要素, figure要素, figcaption要素, div要素, dialog要素, abbr要素, b要素, bdi要素, bdo要素, cite要素, code要素, data要素, dfn要素, em要素, i要素, kbd要素, mark要素, q要素, s要素, samp要素, small要素, span要素, strong要素, sub要素, sup要素, u要素, var要素 です。

ただし、フレージングコンテンツが期待される場所は、要素が本文内で許可されている場合に限ります。

コンテンツモデル
何もない

要素のコンテンツモデルが「何もない」の場合、要素にはテキストノード (要素間の空白以外) と要素ノードが含まれていてはなりません。

タグの省略

終了タグはありません。

コンテンツ属性
グローバル属性 他
href属性
ハイパーリンクのアドレス
crossorigin属性
要素がクロスオリジンリクエストを処理する方法
rel属性
ハイパーリンクを含むドキュメントと宛先リソースの関係
media属性
該当するメディア
integrity属性
サブリソース整合性チェックで使用される整合性メタデータ[SRI]
hreflang属性
リンクされたリソースの言語
type属性
参照されるリソースのタイプのヒント
referrerpolicy属性
要素によって開始されたフェッチのリファラーポリシー
sizes属性
アイコンのサイズ(rel ='icon'の場合)
imagesrcset属性
高解像度ディスプレイ、小型モニターなど、さまざまな状況で使用する画像(rel ='preload'の場合)
imagesizes属性
さまざまなページレイアウトの画像サイズ(rel ='preload'の場合)
as属性
プリロード要求の潜在的な宛先(rel ='preload'およびrel='modulepreload'の場合)
blocking属性
要素が潜在的にレンダリングをブロックしているかどうか
color属性
サイトのアイコンをカスタマイズするときに使用する色(rel ='mask-icon'の場合)
disabled属性
リンクが無効になっているかどうか
fetchpriority属性
要素によって開始されるフェッチの優先順位
title属性
この要素に特別なセマンティクスで、リンクのタイトル, CSSスタイルシートセット名。

charset属性がありましたが、廃止されました。代わりに、リンクされたリソースで HTTP `Content-Type` ヘッダーを使用して下さい。

methods属性がありましたが、廃止されました。代わりに HTTP OPTIONS 機能を使用して下さい。

rev属性がありましたが、廃止されました。代わりに、反対の用語を指定してrel属性を使用して下さい。 (たとえば、rev='made' の代わりに、rel='author' を使用します。)

urn属性がありましたが、廃止されました。代わりに href 属性を使用して、優先される永続識別子を指定します。

target属性がありましたが、廃止されました。不要です。 全く省略して下さい。

DOM インターフェイス
HTMLLinkElement
  1. [Exposed=Window]
  2. interface HTMLLinkElement : HTMLElement {
  3. [HTMLConstructor] constructor();
  4.  
  5. [CEReactions] attribute USVString href;
  6. [CEReactions] attribute DOMString? crossOrigin;
  7. [CEReactions] attribute DOMString rel;
  8. [CEReactions] attribute DOMString as;
  9. [SameObject, PutForwards=value] readonly attribute DOMTokenList relList;
  10. [CEReactions] attribute DOMString media;
  11. [CEReactions] attribute DOMString integrity;
  12. [CEReactions] attribute DOMString hreflang;
  13. [CEReactions] attribute DOMString type;
  14. [SameObject, PutForwards=value] readonly attribute DOMTokenList sizes;
  15. [CEReactions] attribute USVString imageSrcset;
  16. [CEReactions] attribute DOMString imageSizes;
  17. [CEReactions] attribute DOMString referrerPolicy;
  18. [SameObject, PutForwards=value] readonly attribute DOMTokenList blocking;
  19. [CEReactions] attribute boolean disabled;
  20. [CEReactions] attribute DOMString fetchPriority;
  21.  
  22. // also has obsolete members
  23. };
  24.  
  25. HTMLLinkElement includes LinkStyle;
HTMLElement
  1. [Exposed=Window]
  2. interface HTMLElement : Element {
  3. [HTMLConstructor] constructor();
  4.  
  5. // metadata attributes
  6. [CEReactions] attribute DOMString title;
  7. [CEReactions] attribute DOMString lang;
  8. [CEReactions] attribute boolean translate;
  9. [CEReactions] attribute DOMString dir;
  10.  
  11. // user interaction
  12. [CEReactions] attribute (boolean or unrestricted double or DOMString)? hidden;
  13. [CEReactions] attribute DOMString inert;
  14. undefined click();
  15. [CEReactions] attribute DOMString accessKey;
  16. readonly attribute DOMString accessKeyLabel;
  17. [CEReactions] attribute boolean draggable;
  18. [CEReactions] attribute boolean spellcheck;
  19. [CEReactions] attribute DOMString writingSuggestions;
  20. [CEReactions] attribute DOMString autocapitalize;
  21.  
  22. [CEReactions] attribute [LegacyNullToEmptyString] DOMString innerText;
  23. [CEReactions] attribute [LegacyNullToEmptyString] DOMString outerText;
  24.  
  25. ElementInternals attachInternals();
  26.  
  27. // The popover API
  28. undefined showPopover();
  29. undefined hidePopover();
  30. boolean togglePopover(optional boolean force);
  31. [CEReactions] attribute DOMString? popover;
  32. };
  33.  
  34. HTMLElement includes GlobalEventHandlers;
  35. HTMLElement includes ElementContentEditable;
  36. HTMLElement includes HTMLOrSVGElement;
Element
  1. [Exposed=Window]
  2. interface Element : Node {
  3. readonly attribute DOMString? namespaceURI;
  4. readonly attribute DOMString? prefix;
  5. readonly attribute DOMString localName;
  6. readonly attribute DOMString tagName;
  7.  
  8. [CEReactions] attribute DOMString id;
  9. [CEReactions] attribute DOMString className;
  10. [SameObject, PutForwards=value] readonly attribute DOMTokenList classList;
  11. [CEReactions, Unscopable] attribute DOMString slot;
  12.  
  13. boolean hasAttributes();
  14. [SameObject] readonly attribute NamedNodeMap attributes;
  15. sequence<DOMString> getAttributeNames();
  16. DOMString? getAttribute(DOMString qualifiedName);
  17. DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
  18. [CEReactions] undefined setAttribute(DOMString qualifiedName, DOMString value);
  19. [CEReactions] undefined setAttributeNS(DOMString? namespace, DOMString qualifiedName, DOMString value);
  20. [CEReactions] undefined removeAttribute(DOMString qualifiedName);
  21. [CEReactions] undefined removeAttributeNS(DOMString? namespace, DOMString localName);
  22. [CEReactions] boolean toggleAttribute(DOMString qualifiedName, optional boolean force);
  23. boolean hasAttribute(DOMString qualifiedName);
  24. boolean hasAttributeNS(DOMString? namespace, DOMString localName);
  25.  
  26. Attr? getAttributeNode(DOMString qualifiedName);
  27. Attr? getAttributeNodeNS(DOMString? namespace, DOMString localName);
  28. [CEReactions] Attr? setAttributeNode(Attr attr);
  29. [CEReactions] Attr? setAttributeNodeNS(Attr attr);
  30. [CEReactions] Attr removeAttributeNode(Attr attr);
  31.  
  32. ShadowRoot attachShadow(ShadowRootInit init);
  33. readonly attribute ShadowRoot? shadowRoot;
  34.  
  35. Element? closest(DOMString selectors);
  36. boolean matches(DOMString selectors);
  37. boolean webkitMatchesSelector(DOMString selectors); // legacy alias of .matches
  38.  
  39. HTMLCollection getElementsByTagName(DOMString qualifiedName);
  40. HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
  41. HTMLCollection getElementsByClassName(DOMString classNames);
  42.  
  43. [CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // legacy
  44. undefined insertAdjacentText(DOMString where, DOMString data); // legacy
  45. };
GlobalEventHandlers
  1. interface mixin GlobalEventHandlers {
  2. attribute EventHandler onabort;
  3. attribute EventHandler onauxclick;
  4. attribute EventHandler onbeforeinput;
  5. attribute EventHandler onbeforematch;
  6. attribute EventHandler onbeforetoggle;
  7. attribute EventHandler onblur;
  8. attribute EventHandler oncancel;
  9. attribute EventHandler oncanplay;
  10. attribute EventHandler oncanplaythrough;
  11. attribute EventHandler onchange;
  12. attribute EventHandler onclick;
  13. attribute EventHandler onclose;
  14. attribute EventHandler oncontextlost;
  15. attribute EventHandler oncontextmenu;
  16. attribute EventHandler oncontextrestored;
  17. attribute EventHandler oncopy;
  18. attribute EventHandler oncuechange;
  19. attribute EventHandler oncut;
  20. attribute EventHandler ondblclick;
  21. attribute EventHandler ondrag;
  22. attribute EventHandler ondragend;
  23. attribute EventHandler ondragenter;
  24. attribute EventHandler ondragleave;
  25. attribute EventHandler ondragover;
  26. attribute EventHandler ondragstart;
  27. attribute EventHandler ondrop;
  28. attribute EventHandler ondurationchange;
  29. attribute EventHandler onemptied;
  30. attribute EventHandler onended;
  31. attribute OnErrorEventHandler onerror;
  32. attribute EventHandler onfocus;
  33. attribute EventHandler onformdata;
  34. attribute EventHandler oninput;
  35. attribute EventHandler oninvalid;
  36. attribute EventHandler onkeydown;
  37. attribute EventHandler onkeypress;
  38. attribute EventHandler onkeyup;
  39. attribute EventHandler onload;
  40. attribute EventHandler onloadeddata;
  41. attribute EventHandler onloadedmetadata;
  42. attribute EventHandler onloadstart;
  43. attribute EventHandler onmousedown;
  44. [LegacyLenientThis] attribute EventHandler onmouseenter;
  45. [LegacyLenientThis] attribute EventHandler onmouseleave;
  46. attribute EventHandler onmousemove;
  47. attribute EventHandler onmouseout;
  48. attribute EventHandler onmouseover;
  49. attribute EventHandler onmouseup;
  50. attribute EventHandler onpaste;
  51. attribute EventHandler onpause;
  52. attribute EventHandler onplay;
  53. attribute EventHandler onplaying;
  54. attribute EventHandler onprogress;
  55. attribute EventHandler onratechange;
  56. attribute EventHandler onreset;
  57. attribute EventHandler onresize;
  58. attribute EventHandler onscroll;
  59. attribute EventHandler onscrollend;
  60. attribute EventHandler onsecuritypolicyviolation;
  61. attribute EventHandler onseeked;
  62. attribute EventHandler onseeking;
  63. attribute EventHandler onselect;
  64. attribute EventHandler onslotchange;
  65. attribute EventHandler onstalled;
  66. attribute EventHandler onsubmit;
  67. attribute EventHandler onsuspend;
  68. attribute EventHandler ontimeupdate;
  69. attribute EventHandler ontoggle;
  70. attribute EventHandler onvolumechange;
  71. attribute EventHandler onwaiting;
  72. attribute EventHandler onwebkitanimationend;
  73. attribute EventHandler onwebkitanimationiteration;
  74. attribute EventHandler onwebkitanimationstart;
  75. attribute EventHandler onwebkittransitionend;
  76. attribute EventHandler onwheel;
  77. };
ElementContentEditable
  1. interface mixin ElementContentEditable {
  2. [CEReactions] attribute DOMString contentEditable;
  3. [CEReactions] attribute DOMString enterKeyHint;
  4. readonly attribute boolean isContentEditable;
  5. [CEReactions] attribute DOMString inputMode;
  6. };
HTMLOrSVGElement
  1. interface mixin HTMLOrSVGElement {
  2. [SameObject] readonly attribute DOMStringMap dataset;
  3. attribute DOMString nonce; // intentionally no [CEReactions]
  4.  
  5. [CEReactions] attribute boolean autofocus;
  6. [CEReactions] attribute long tabIndex;
  7. undefined focus(optional FocusOptions options = {});
  8. undefined blur();
  9. };
LinkStyle
  1. interface mixin LinkStyle {
  2. readonly attribute CSSStyleSheet? sheet;
  3. };
ARIA in HTML
暗黙的="No" ARIAロール="No" aria-* 属性="No"

暗黙的な ARIAセマンティクスがありませんが、意味はあり、この意味は、ARIA によって提供されず、ARIA のユーザーに公開されていないロール、状態、プロパティで表現される可能性があります。

作成者は、暗黙的な ARIAセマンティクス, または HTML要素のネイティブセマンティクスを上書きしてはいけません。

記述できる aria-* 属性はありません。

レンダリング
ボックスを生成しない
非表示の要素
  1. link {
  2. display: none;
  3. }

CSS を大雑把に読むと、 要素とその子孫はボックスやテキストシーケンスを生成しません。 などになります。

説明
link要素は、現在の文書と外部のリソースとの関係を表します。

link要素は、使用すると、作成者は自分の文書を他のリソースにリンクできます。
a要素と area要素によって作成されたハイパーリンクとは異なり、link要素によって作成されたハイパーリンクは、提案されたデフォルトのレンダリングをサポートするユーザーエージェントでは、デフォルトではドキュメントの一部として表示されません。また、CSSを使用して強制的に表示された場合でも、アクティブ化の動作はありません。代わりに、主にページまたはページのコンテンツを使用する他のソフトウェアで使用される可能性のあるセマンティック情報を提供します。さらに、ユーザーエージェントは、このようなハイパーリンクをたどるための独自の UI を提供できます。

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>link要素の例 - (Example of link element) | 離珠のHTMLでしぃ!</title>
  6. <link rel="stylesheet" href="./excss01.css">
  7. </head>
  8. <body>
  9. <h1>link要素の例</h1>
  10. <p>この例の link要素は、./excss01.css というスタイルシートをインポートすると指定しています。</p>
  11. </body>
  12. </html>

このサンプルへのリンクです。
(./exlink.htm)

JSONデータ
JSON形式での、データのイメージです。
  1. {
  2. "link": {
  3. "check": "2024-09-01",
  4. "group": "Metadata",
  5. "element": "- X EMPTY -- a media-independent link. (Void elements.) [Metadata|FlowLimited|PhrasingLimited] --",
  6. "attlist": {
  7. "%Global;": "",
  8. "href": "%URI; #IMPLIED -- URI for linked resource --",
  9. "hreflang": "%LanguageCode; #IMPLIED -- language code --",
  10. "type": "%ContentType; #IMPLIED -- advisory content type --",
  11. "rel": "%LinkTypes; #IMPLIED -- forward link types --",
  12. "media": "%MediaDesc; #IMPLIED -- for rendering on these media --",
  13. "crossorigin": "CDATA #IMPLIED -- How the element handles crossorigin requests --",
  14. "integrity": "CDATA #IMPLIED -- Integrity metadata used in Subresource Integrity checks [SRI] --",
  15. "referrerpolicy": "CDATA #IMPLIED -- Referrer policy for fetches initiated by the element --",
  16. "sizes": "CDATA #IMPLIED -- Sizes of the icons (for rel='icon') --",
  17. "imagesrcset": "CDATA #IMPLIED -- Images to use in different situations, e.g., high-resolution displays, small monitors, etc. (for rel='preload') --",
  18. "imagesizes": "CDATA #IMPLIED -- Image sizes for different page layouts (for rel='preload') --",
  19. "as": "CDATA #IMPLIED -- Potential destination for a preload request (for rel='preload' and rel='modulepreload') --",
  20. "blocking": "CDATA #IMPLIED -- Whether the element is potentially render-blocking --",
  21. "color": "CDATA #IMPLIED -- Color to use when customizing a site's icon (for rel='mask-icon') --",
  22. "disabled": "CDATA #IMPLIED -- Whether the link is disabled --",
  23. "fetchpriority": "CDATA #IMPLIED -- Sets the priority for fetches initiated by the element --",
  24. },
  25. "comment": "外部リソースにリンク (a media-independent link)",
  26. "point": "現在の文書と外部のリソースとの関係を表します。",
  27. "description": [
  28. "使用すると、作成者は自分の文書を他のリソースにリンクできます。",
  29. "a要素と area要素によって作成されたハイパーリンクとは異なり、link要素によって作成されたハイパーリンクは、提案されたデフォルトのレンダリングをサポートするユーザーエージェントでは、デフォルトではドキュメントの一部として表示されません。また、CSSを使用して強制的に表示された場合でも、アクティブ化の動作はありません。代わりに、主にページまたはページのコンテンツを使用する他のソフトウェアで使用される可能性のあるセマンティック情報を提供します。さらに、ユーザーエージェントは、このようなハイパーリンクをたどるための独自の UI を提供できます。",
  30. ],
  31. "kind": "Void",
  32. "categories": [
  33. "Metadata",
  34. "FlowLimited",
  35. "PhrasingLimited",
  36. ],
  37. "categoriessupplement": "itemprop属性が存在する場合、または body-ok のキーワードのみを含む rel属性が存在する場合は、フローコンテンツ, フレージングコンテンツ。",
  38. "used": [
  39. "parent (%Metadata)*",
  40. "HEAD NOSCRIPT (LINK)*",
  41. "parent (%Phrasing)*",
  42. ],
  43. "usedsupplement": "ただし、フレージングコンテンツが期待される場所は、要素が本文内で許可されている場合に限ります。",
  44. "contentmodel": "%Nothing",
  45. "tag": [
  46. "-",
  47. "X",
  48. ],
  49. "attributes": {
  50. "href": "ハイパーリンクのアドレス",
  51. "crossorigin": "要素がクロスオリジンリクエストを処理する方法",
  52. "rel": "ハイパーリンクを含むドキュメントと宛先リソースの関係",
  53. "media": "該当するメディア",
  54. "integrity": "サブリソース整合性チェックで使用される整合性メタデータ[SRI]",
  55. "hreflang": "リンクされたリソースの言語",
  56. "type": "参照されるリソースのタイプのヒント",
  57. "referrerpolicy": "要素によって開始されたフェッチのリファラーポリシー",
  58. "sizes": "アイコンのサイズ(rel ='icon'の場合)",
  59. "imagesrcset": "高解像度ディスプレイ、小型モニターなど、さまざまな状況で使用する画像(rel ='preload'の場合)",
  60. "imagesizes": "さまざまなページレイアウトの画像サイズ(rel ='preload'の場合)",
  61. "as": "プリロード要求の潜在的な宛先(rel ='preload'およびrel='modulepreload'の場合)",
  62. "blocking": "要素が潜在的にレンダリングをブロックしているかどうか",
  63. "color": "サイトのアイコンをカスタマイズするときに使用する色(rel ='mask-icon'の場合)",
  64. "disabled": "リンクが無効になっているかどうか",
  65. "fetchpriority": "要素によって開始されるフェッチの優先順位",
  66. "title": "この要素に特別なセマンティクスで、リンクのタイトル, CSSスタイルシートセット名。",
  67. },
  68. "attributessupplement": [
  69. "charset属性がありましたが、廃止されました。代わりに、リンクされたリソースで HTTP `Content-Type` ヘッダーを使用して下さい。",
  70. "methods属性がありましたが、廃止されました。代わりに HTTP OPTIONS 機能を使用して下さい。",
  71. "rev属性がありましたが、廃止されました。代わりに、反対の用語を指定してrel属性を使用して下さい。 (たとえば、rev='made' の代わりに、rel='author' を使用します。)",
  72. "urn属性がありましたが、廃止されました。代わりに href 属性を使用して、優先される永続識別子を指定します。",
  73. "target属性がありましたが、廃止されました。不要です。 全く省略して下さい。",
  74. ],
  75. "dominterface": "HTMLLinkElement",
  76. "rendering": "Hidden",
  77. "reference": [
  78. {
  79. "title": "HTML Living Standard. 4.2.4 The link element.",
  80. "href": "https://html.spec.whatwg.org/multipage/semantics.html#the-link-element",
  81. "heading": "HTML Living Standard. 4.2.4 The link element",
  82. "sub": "Last Updated 27 August 2024",
  83. },
  84. {
  85. "title": "HTML Living Standard. 4.6 Links 4.6.7 Link types.",
  86. "href": "https://html.spec.whatwg.org/multipage/links.html#linkTypes",
  87. "heading": "HTML Living Standard. 4.6 Links 4.6.7 Link types",
  88. "sub": "Last Updated 27 August 2024",
  89. },
  90. {
  91. "title": "HTML Living Standard. 15 Rendering 15.3.1 Hidden elements.",
  92. "href": "https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements",
  93. "heading": "HTML Living Standard. 15 Rendering 15.3.1 Hidden elements",
  94. "sub": "Last Updated 19 July 2024",
  95. },
  96. {
  97. "title": "HTML 5.2 W3C Recommendation. 4.2.4 The link element. W3C Recommendation, 14 December 2017.",
  98. "href": "https://www.w3.org/TR/2017/REC-html52-20171214/document-metadata.html#the-link-element",
  99. "heading": "HTML 5.2 W3C 勧告. 4.2.4 The link element",
  100. "sub": "W3C勧告、2017年12月14日",
  101. },
  102. {
  103. "title": "HTML 5.2 W3C Recommendation. 10.3.1. Hidden elements.",
  104. "href": "https://www.w3.org/TR/2017/REC-html52-20171214/rendering.html#hidden-elements",
  105. "heading": "HTML 5.2 W3C 勧告. 10.3.1. Hidden elements",
  106. "sub": "W3C勧告、2017年12月14日",
  107. },
  108. {
  109. "title": "HTML 5.1 W3C Recommendation. 4.2.4 The link element. W3C Recommendation, 1 November 2016.",
  110. "href": "https://www.w3.org/TR/2016/REC-html51-20161101/document-metadata.html#the-link-element",
  111. "heading": "HTML 5.1 W3C 勧告. 4.2.4 The link element",
  112. "sub": "W3C勧告、2016年11月1日",
  113. },
  114. {
  115. "title": "HTML 5.1 W3C Recommendation. 10.3.1. Hidden elements. W3C Recommendation, 1 November 2016.",
  116. "href": "https://www.w3.org/TR/2016/REC-html51-20161101/rendering.html#hidden-elements",
  117. "heading": "HTML 5.1 W3C 勧告. 10.3.1. Hidden elements",
  118. "sub": "W3C勧告、2016年11月1日",
  119. },
  120. {
  121. "title": "HTML 5 W3C Recommendation. 4.2.4 The link element. W3C Recommendation, 28 October 2014.",
  122. "href": "https://www.w3.org/TR/2014/REC-html5-20141028/document-metadata.html#the-link-element",
  123. "heading": "HTML 5 W3C 勧告. 4.2.4 The link element",
  124. "sub": "W3C勧告、2014年10月28日",
  125. },
  126. {
  127. "title": "HTML 5 W3C Recommendation. 10.3.1. Hidden elements. W3C Recommendation, 28 October 2014.",
  128. "href": "https://www.w3.org/TR/2014/REC-html5-20141028/rendering.html#hidden-elements",
  129. "heading": "HTML 5 W3C 勧告. 10.3.1. Hidden elements",
  130. "sub": "W3C勧告、2014年10月28日",
  131. },
  132. {
  133. "title": "HTML 4.01 Specification W3C Recommendation. 12.3 Document relationships: the LINK element. W3C Recommendation 24 December 1999.",
  134. "href": "https://www.w3.org/TR/html401/struct/links.html#h-12.3",
  135. "heading": "HTML 4.01 Specification W3C 勧告. 12.3 Document relationships: the LINK element",
  136. "sub": "W3C勧告1999年12月24日",
  137. },
  138. {
  139. "title": "HTML 3.2 Reference Specification. W3C Recommendation 14-Jan-1997.",
  140. "href": "https://www.w3.org/TR/2018/SPSD-html32-20180315/#link",
  141. "heading": "HTML 3.2 Reference Specification LINK",
  142. "sub": "W3C勧告1997年1月14日",
  143. },
  144. {
  145. "title": " Hypertext Markup Language - 2.0. November 1995.",
  146. "href": "https://www.ietf.org/rfc/rfc1866.txt",
  147. "heading": "Hypertext Markup Language - 2.0",
  148. "sub": "November 1995",
  149. },
  150. {
  151. "title": "Hypertext Markup Language (HTML). June 1993.",
  152. "href": "https://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt",
  153. "heading": "Hypertext Markup Language (HTML)",
  154. "sub": "June 1993",
  155. },
  156. {
  157. "title": "MDN Web Docs. HTML <link>: The External Resource Link element.",
  158. "href": "https://developer.mozilla.org/ja/docs/Web/HTML/Element/link",
  159. "heading": "<link>: 外部リソースへのリンク要素 - HTML: ハイパーテキストマークアップ言語 | MDN",
  160. },
  161. ],
  162. "version": {
  163. "first": "HTML",
  164. "latest": "HTML Living Standard",
  165. },
  166. }
  167. }

注意: 簡易に描画する為に、各項目の後ろに , を付与しています。JSON の形式では、末尾の項目の後には , は付けません。

最終確認日

2024-09-01


2.使用できるコンテキスト

link要素 は、
head要素に
配置できます。

link要素が使用できるコンテキスト(Context文脈)は、head要素head要素内にある noscript要素コンテンツとしてです。指定する属性(属性値)などにより、フレージングコンテンツを受け入れる要素にも、配置できます。

document
html
head
body
link
noscript
link
link

link要素は、メタデータコンテンツを受け入れる要素に配置できます。
head要素にも, head要素内にあるnoscript要素の内部にも配置できます。
itemprop属性が存在する場合、または body-ok のキーワードのみを含むrel属性が存在する場合は、フレージングコンテンツを受け入れる要素にも(フローコンテンツを受け入れる要素でも)配置できます。

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>離珠のHTMLでしぃ!</title>
  4. <link rel="icon" href="../favicon.ico" type="image/vnd.microsoft.icon">
  5. </head>

メタデータコンテンツを配置できるhead要素のコンテンツの一部として、link要素を配置できます。head要素の子である noscript要素にも配置できます。

  1. <head>
  2. <meta charset="UTF-8">
  3. <title>離珠のHTMLでしぃ!</title>
  4. <link rel="stylesheet" href="./risyu01.css">
  5. <noscript>
  6. <link rel="stylesheet" href="./noscript01.css">
  7. </noscript>
  8. </head>
  9. <body>
  10. <link rel="stylesheet" href="./risyu02.css">
  11. <noscript>
  12. <link rel="stylesheet" href="./noscript02.css">
  13. </noscript>
  14. </body>

フレージングコンテンツを配置できる要素のコンテンツの一部としてrel属性の値が 'stylesheet' だけであるlink要素を配置できます。noscript要素にも配置できます。リンク種別 'stylesheet' は、 body-ok です。

フレージングコンテンツを受け入れる要素にも配置できると例で示しましたが、メタデータコンテンツを受け入れるhead要素に配置する事をお勧めします。どこに記述しても、スタイルシートの影響範囲は同じです。スタイルシート同士の既述順が優先度に影響するだけです。


3.コンテンツモデル

link要素 は、
配置可能なコンテンツは
ありません。

link要素子や子孫としてどのようなコンテンツ(Content内容) が含まれなければならないかというと、何もない」 (要素にはテキストノード(要素間の空白以外) と要素ノードが含まれていてはなりません。) です。

link要素は、(内容コンテンツContent)を持つことができない空要素です。

link要素は、属性(属性値)によって現在の文書と外部のリソースとの関係を表します。


4.コンテンツ属性

link要素 は、
グローバル属性と、
rel, href,
type, media,
integrity,
crossorigin,
referrerpolicy,
sizes, as,
imagesrcset,
imagesizes,
color,
hreflang,
disabled,
blocking を
設定できます。

link要素に指定することができる属性は、グローバル属性rel属性, href属性, type属性, media属性, integrity属性, crossorigin属性, referrerpolicy属性, sizes属性, as属性, imagesrcset属性, imagesizes属性, color属性, hreflang属性, disabled属性, blocking属性, fetchpriority属性 を設定できます。
また、グローバル属性である title属性ですが、この要素では特別な意味を持ちます。

link要素は、href属性またはimagesrcset属性の一方または両方が存在する必要があります。

link要素は、rel属性またはitemprop属性のいずれかが必要ですが、両方は必要ありません。

charset属性は、HTML5 で廃止されました。代わりに、リンクされたリソースで HTTP `Content-Type` ヘッダーを使用して下さい。

methods属性は、HTML5 で廃止されました。代わりに HTTP OPTIONS 機能を使用して下さい。

rev属性は、HTML5 で廃止されました。代わりに、反対の用語を指定してrel属性を使用して下さい。 (たとえば、rev="made" の代わりに、rel="author" を使用します。)

urn属性は、HTML5 で廃止されました。代わりに href 属性を使用して、優先される永続識別子を指定します。

target属性は、HTML5 で廃止されました。不要です。 全く省略して下さい。

rel属性

  1. <link rel="stylesheet" href="./risyu.css">

rel属性は、文書と参照先のリソース間の関係を表すリンク種別を指定します。属性の値は、空白で区切られたリンク種別の値のリストでなければなりません。

この例では、'stylesheet' を属性値で記しています。'stylesheet' は、「スタイルシートをインポートします。」を意味します。尚、スタイルシートの場合は、type属性'text/css' は省略できます。

リンク種別は、HTML Living Standard の Link types に記述(説明)があります。「HTML Living Standard - 4.6.7 Link types」

href属性

  1. <link rel="stylesheet" href="./risyu.css">

href属性は、参照先のリソースの URLを指定します。URL は絶対・相対のどちらでもかまいません。

type属性

  1. <link rel="stylesheet" href="./risyu.css" type="text/css">

type属性は、参照先のリソースの MIMEタイプを指定します。この情報は参考の為の値です。

rel属性で指定するリンク種別stylesheet キーワードによって指定されるリソースのデフォルトのタイプは text/css です。
rel属性で指定されるリソースによって、既定値があってtype属性が省略できる場合があります。

media属性

  1. <link rel="stylesheet" href="./risyu.css" media="screen and (max-width: 640px)">

media属性は、メディアクエリを指定します。参照先のリソースが適用されるメディアを指定します

  • media : 属性名
  • "screen and (max-width: 640px)" : 属性値 (メディアクエリ)
    • screen : メディアタイプ
    • and : 論理演算子
    • (max-width: 640px) : メディア特性

メディアタイプは、端末の全般的なカテゴリを説明します。all(すべてのデバイス), print(プリンタ), screen(プリンタ以外のすべてのデバイス), tty(テレタイプなど), tv(テレビ), projection(プロジェクター), handheld(携帯電話), braille(点字ディスプレイ), embossed(点字プリンタ), aural(音声デバイス), speech(音声出力機器) などがあります。

メディア特性は、特定のユーザーエージェントや、出力端末や、環境などの特性を記述します。特性式は、括弧で囲む必要があります。

論理演算子は、and 演算子(論理積), カンマ区切り(論理和), not 演算子(論理否定), only 演算子(古いブラウザー対応) があります。

integrity属性

  1. <link rel="stylesheet"
    href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.css"
    integrity="sha384-jTFzRHnGayPcZHkUx5hTuWbygQevlGFimHdpRHicjyJXGyyjcioudSScb7/YN0PE"
    crossorigin="anonymous">

integrity属性は、サブリソースの整合性チェックで使用される 整合性メタデータを指定します。

この属性は、stylesheetpreload、または modulepreload キーワードを含むrel属性を持つlink要素でのみ指定する必要があります。

crossorigin属性

  1. <link rel="stylesheet"
    href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.css"
    integrity="sha384-jTFzRHnGayPcZHkUx5hTuWbygQevlGFimHdpRHicjyJXGyyjcioudSScb7/YN0PE"
    crossorigin="anonymous">

crossorigin属性は、要素がクロスオリジン要求を処理する方法です。anonymous(匿名), use-credentials(資格情報を使用する) があります。

referrerpolicy属性

  1. <link rel="stylesheet" href="./risyu.css" referrerpolicy="no-referrer-when-downgrade">

referrerpolicy属性は、リファラーポリシーを設定します。リソースを読み込む際にどのリファラーを使用するかを示す文字列を記述します。

sizes属性

  1. <link rel="icon" href="../favicon.ico" type="image/vnd.microsoft.icon" sizes="16x16">

sizes属性は、アイコンのサイズを設定します。

この属性は、icon キーワードまたは apple-touch-icon キーワードを指定する rel属性を持つlink要素でのみ指定する必要があります。

as属性

  1. <link rel="preload" href="sample640.png" as="image"
    imagesrcset="sample320.png 320w, sample640.png 640w, sample1280.png 1280w" imagesizes="10vw">
  2. <body>
  3. <img src="sample640.png"
    srcset="sample320.png 320w, sample640.png 640w, sample1280.png 1280w" sizes="10vw" alt="サンプル画像">

as属性は、プリロード要求の潜在的な宛先を設定します。

この属性は、preload キーワードまたは modulepreload キーワードを指定するrel属性を持つlink要素でのみ指定する必要があります。

imagesrcset属性

  1. <link rel="preload" href="sample640.png" as="image"
    imagesrcset="sample320.png 320w, sample640.png 640w, sample1280.png 1280w" imagesizes="10vw">
  2. <body>
  3. <img src="sample640.png"
    srcset="sample320.png 320w, sample640.png 640w, sample1280.png 1280w" sizes="10vw" alt="サンプル画像">

imagesrcset属性は、プリロード要求の画像候補文字列を設定します。

この例の 320w は幅記述子といい、幅ディスクリプタ値と小文字W で記述しています。他に画素密度記述子という画素密度記述子の値と小文字X での記述の仕方もあります。

この属性は、preload キーワードを指定するrel属性image キーワードを指定するas属性を持つlink要素でのみ指定する必要があります。

imagesizes属性

  1. <link rel="preload" href="sample640.png" as="image"
    imagesrcset="sample320.png 320w, sample640.png 640w, sample1280.png 1280w" imagesizes="10vw">
  2. <body>
  3. <img src="sample640.png"
    srcset="sample320.png 320w, sample640.png 640w, sample1280.png 1280w" sizes="10vw" alt="サンプル画像">

imagesizes属性は、プリロード要求の画像候補の画像サイズを設定します。

この属性は、preload キーワードを指定するrel属性image キーワードを指定するas属性を持つlink要素でのみ指定する必要があります。

color属性

  1. <link rel="mask-icon" href="./risyu.svg" color="#ff0000">

color属性は、ユーザーがサイトをピン留めしたときに表示されるアイコンの表示をカスタマイズするためにユーザー エージェントが使用できる 推奨色を指定します。

この属性は、mask-icon キーワードを指定するrel属性を持つlink要素でのみ指定する必要があります。

hreflang属性

  1. <link rel="alternate" href="./alternate.htm" hreflang="en">

hreflang属性は、参照先のリソースの 言語を指定します。

disabled属性

  1. <link rel="stylesheet" href="./risyu.css" disabled>

disabled属性は、参照先のリソースの 無効を指定します。

この属性は、stylesheet キーワードを指定する rel属性を持つlink要素でのみ指定する必要があります。

blocking属性

  1. <link rel="stylesheet" href="./risyu.css" blocking="render">

blocking属性は、render キーワードを指定した場合、要素は潜在的にレンダリングブロックになります。これは個々の要素で定義されます。
デフォルトでは、要素は暗黙的にレンダリングをブロックする可能性はありません。

この属性は、stylesheet キーワードを指定するrel属性を持つlink要素でのみ指定する必要があります。

fetchpriority属性

  1. <link rel="stylesheet" href="./risyu.css" fetchpriority="high">

fetchpriority属性は、外部リソースリンクで使用することを目的としたフェッチ優先度属性であり、リンクされたリソースをフェッチして処理するときに使用される優先度を設定するために使用されます。

フェッチ優先度属性は、次のキーワードと状態を含む列挙型属性です。
high : 同じ宛先を持つ他のリソースに対して優先度の高いフェッチを通知します。
low : 同じ宛先を持つ他のリソースに対して優先度の低いフェッチを通知します。
auto : 同じ宛先を持つ他のリソースに対するフェッチ優先度の自動決定を通知します。
属性の欠損値のデフォルトと無効な値のデフォルトは両方とも auto です。

title属性

  1. <link rel="stylesheet" href="./risyu.css" title="Recommendation">
  2. <link rel="alternate stylesheet" href="./risyu.css" title="Alternate">

title属性は、この要素に関する特別なセマンティクスがあります。title属性は、リンクのタイトルを与えます。 1 つの例外を除いて、これは純粋にアドバイスです。値はテキストです。例外は、ドキュメントツリー内のスタイルシートリンクであり、title属性によって CSSスタイルシートセットが定義されます。

link要素title属性は、タイトルのないリンクが親要素のタイトルを継承せず、単にタイトルがないという点で、他のほとんどの要素のグローバル属性title属性とは異なります。


5.DOM インターフェイス

link要素
直接表す
プロパティは
ありません。

link要素を JavaScript などで操作するには、documentquerySelectorAll()メソッドを用いて要素セレクタlinkと指定して、link要素のリストを取得する方法があります。この時に取得できる値の形式はHTMLLinkElement インターフェイスのリストです。

他には、name属性があればdocumentgetElementsByName()メソッドを用いるとか、id属性があればdocumentgetElementById()メソッドを用いるとか、状況, 目的によりいろいろあります。

このページのメニューは、
"〇〇"です。

  1. <p>このページのメニューは、
  2. "<code id="icdJs501">〇〇</code>"です。</p>
  3. <script>
  4. document.addEventListener("DOMContentLoaded", function() {
  5. var veOl = document.createElement("ol");
  6. var veLi = document.createElement("li");
  7. var veAnchor = document.createElement("a");
  8. var vaLink = document.querySelectorAll("link[type='text/html']");
  9. for (var i = 0; i < vaLink.length; i++){
  10. veLi = document.createElement("li");
  11. veAnchor = document.createElement("a");
  12. veAnchor.setAttribute("href", vaLink[i].getAttribute("href"));
  13. veAnchor.textContent = vaLink[i].getAttribute("title");
  14. veLi.appendChild(veAnchor);
  15. veOl.appendChild(veLi);
  16. };
  17. if (veOl.childElementCount) document.getElementById("icdJs501").textContent = "";
  18. document.getElementById("icdJs501").appendChild(veOl);
  19. });
  20. </script>

type属性の値が text/html であるlink要素の一覧から、href属性title属性の値を取得する例です。例示では、メニュー形式に編集して表示する処理としています。例示で表示する為に、HTML文書の読み込みと解析が終了した時に処理するコードとしています。


6.レンダリング

  1. link {
  2. display: none;
  3. }

link要素ユーザーエージェントレベルスタイルシートデフォルトでは、displayプロパティの値は none であり、この要素とその子孫はボックステキストシーケンスを生成しません。

現在の文書と外部のリソースとの関係を表すメタデータを記述する為の要素なので、ビジュアルメディアでボックスを生成する様な指定は行わないのが良いでしょう。 外部のリソースを埋め込む訳ではありません。埋め込む機能の要素は、他にあります。

  1. <div class="cdvPseudo601">
  2. <link rel="stylesheet" href="./dummy.css">
  3. </div>
  1. <style>
  2. .cdvPseudo601 link,
  3. .cdvPseudo601 link::before,
  4. .cdvPseudo601 link::after {
  5. display: block;
  6. }
  7. .cdvPseudo601 link::before {
  8. content: attr(rel);
  9. }
  10. .cdvPseudo601 link::after {
  11. content: attr(href);
  12. }
  13. </style>

メタデータを記述する空要素を表示する例のつもりです。表示する予定であれば、メタデータとしてではなく表示用でもあるデータとして別の要素で記述しておくのが良いかと思います。例として記述してみても、なんか変かなと思います。まぁ技術的な可能性としての知識として見てください。


7.気を付ける点

記述順

link要素の参照先リソースの内容によっては、記述の順序に意味がある場合もあります。
たとえば、CSS では優先度が同じ場合は記述順の後の物が採用されるなどです。
この場合でも、効果範囲は記述箇所以降ではなくて文書全体です。

簡単な転用

link要素は、外部のリソースと関われる訳で、内容に理解, 納得の上で使いましょう。 何より、書き間違えて意図と異なる結果になるとしても、その記述が作成者の意図として扱われる訳ですから。

簡単という意味では、当該ソースをそのままでも読み込む外部のリソースの内容を変えるだけで処理内憂を変える事が出来ます。 つまり導入当初と運用時で同じ保証はありません。簡単であるが故の影響範囲の大きさ。管理が面倒になる点に注意しましょう。


8.付記