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

base要素


1.仕様

BASE要素 は、
URLを解析する為の
ドキュメントベースURLと、
ハイパーリンクを辿る為の
デフォルトの閲覧コンテキストの
名前を表します。

base

文書の基底URL (document base URI)

種類
空要素

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

使用できるコンテキスト
head要素に 0または1つ

head要素に 0または1つを そのコンテンツとして、使用できます。

他の base要素を含まない head要素のコンテンツとして、使用できます。

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

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

タグの省略

終了タグはありません。

コンテンツ属性
グローバル属性 他
href属性
基底URL
target属性
表示する場所
DOM インターフェイス
HTMLBaseElement
  1. [Exposed=Window]
  2. interface HTMLBaseElement : HTMLElement {
  3. [HTMLConstructor] constructor();
  4.  
  5. [CEReactions] attribute USVString href;
  6. [CEReactions] attribute DOMString target;
  7. };
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. };
ARIA in HTML
暗黙的="No" ARIAロール="No" aria-* 属性="No"

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

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

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

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

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

説明
base要素は、基底URLと閲覧コンテキストの名前を表します。

base要素は、href属性を用いて文書全体を通して相対 URL に使用される基底 URL (ドキュメントベースURL)を指定します。
target属性を用いて名前またはキーワードで、ハイパーリンクやフォームによって移動が発生したときに、表示先が明確に示されていない要素において、結果を表示する既定の表示場所(デフォルトの閲覧コンテキスト)を指定します。

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>base要素の例 - (Example of base element) | 離珠のHTMLでしぃ!</title>
  6. <base href="http://risyu.in.coocan.jp/">
  7. </head>
  8. <body>
  9. <h1>base要素の例</h1>
  10. <p>この例の base要素は、基底URLを http://risyu.in.coocan.jp/ と指定しています。</p>
  11. <a href="./Html/index.htm">./Html/index.htm</a>
  12. <p>この例の a要素は、相対URL を ./Html/index.htm と指定しています。base要素で指定している基底URL と合わせて http://risyu.in.coocan.jp/Html/index.htm へのリンクとなります。</p>
  13. </body>
  14. </html>

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

JSONデータ
JSON形式での、データのイメージです。
  1. {
  2. "base": {
  3. "check": "2024-09-01",
  4. "group": "Metadata",
  5. "element": "- X EMPTY -- document base URI. (Void elements.) [Metadata] --",
  6. "attlist": {
  7. "%Global;": "",
  8. "href": "%URI; #REQUIRED -- URI that acts as base URI --",
  9. "target": "CDATA #IMPLIED -- Default navigable for hyperlink navigation and form submission --",
  10. },
  11. "comment": "文書の基底URL (document base URI)",
  12. "point": "基底URLと閲覧コンテキストの名前を表します。",
  13. "description": [
  14. "href属性を用いて文書全体を通して相対 URL に使用される基底 URL (ドキュメントベースURL)を指定します。",
  15. "target属性を用いて名前またはキーワードで、ハイパーリンクやフォームによって移動が発生したときに、表示先が明確に示されていない要素において、結果を表示する既定の表示場所(デフォルトの閲覧コンテキスト)を指定します。",
  16. ],
  17. "kind": "Void",
  18. "categories": "Metadata",
  19. "used": "HEAD (BASE)?",
  20. "usedsupplement": "他の base要素を含まない head要素のコンテンツとして、使用できます。",
  21. "contentmodel": "%Nothing",
  22. "tag": [
  23. "-",
  24. "X",
  25. ],
  26. "attributes": {
  27. "href": "基底URL",
  28. "target": "表示する場所",
  29. },
  30. "dominterface": "HTMLBaseElement",
  31. "rendering": "Hidden",
  32. "reference": [
  33. {
  34. "title": "HTML Living Standard. 4.2.3 The base element.",
  35. "href": "https://html.spec.whatwg.org/multipage/semantics.html#the-base-element",
  36. "heading": "HTML Living Standard. 4.2.3 The base element",
  37. "sub": "Last Updated 27 August 2024",
  38. },
  39. {
  40. "title": "HTML Living Standard. 15 Rendering 15.3.1 Hidden elements.",
  41. "href": "https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements",
  42. "heading": "HTML Living Standard. 15 Rendering 15.3.1 Hidden elements",
  43. "sub": "Last Updated 27 August 2024",
  44. },
  45. {
  46. "title": "HTML 5.2 W3C Recommendation. 4.2.3 The base element. W3C Recommendation, 14 December 2017.",
  47. "href": "https://www.w3.org/TR/2017/REC-html52-20171214/document-metadata.html#the-base-element",
  48. "heading": "HTML 5.2 W3C 勧告. 4.2.3 The base element",
  49. "sub": "W3C勧告、2017年12月14日",
  50. },
  51. {
  52. "title": "HTML 5.2 W3C Recommendation. 10.3.1. Hidden elements.",
  53. "href": "https://www.w3.org/TR/2017/REC-html52-20171214/rendering.html#hidden-elements",
  54. "heading": "HTML 5.2 W3C 勧告. 10.3.1. Hidden elements",
  55. "sub": "W3C勧告、2017年12月14日",
  56. },
  57. {
  58. "title": "HTML 5.1 W3C Recommendation. 4.2.3 The base element. W3C Recommendation, 1 November 2016.",
  59. "href": "https://www.w3.org/TR/2016/REC-html51-20161101/document-metadata.html#the-base-element",
  60. "heading": "HTML 5.1 W3C 勧告. 4.2.3 The base element",
  61. "sub": "W3C勧告、2016年11月1日",
  62. },
  63. {
  64. "title": "HTML 5.1 W3C Recommendation. 10.3.1. Hidden elements. W3C Recommendation, 1 November 2016.",
  65. "href": "https://www.w3.org/TR/2016/REC-html51-20161101/rendering.html#hidden-elements",
  66. "heading": "HTML 5.1 W3C 勧告. 10.3.1. Hidden elements",
  67. "sub": "W3C勧告、2016年11月1日",
  68. },
  69. {
  70. "title": "HTML 5 W3C Recommendation. 4.2.3 The base element. W3C Recommendation, 28 October 2014.",
  71. "href": "https://www.w3.org/TR/2014/REC-html5-20141028/document-metadata.html#the-base-element",
  72. "heading": "HTML 5 W3C 勧告. 4.2.3 The base element",
  73. "sub": "W3C勧告、2014年10月28日",
  74. },
  75. {
  76. "title": "HTML 5 W3C Recommendation. 10.3.1. Hidden elements. W3C Recommendation, 28 October 2014.",
  77. "href": "https://www.w3.org/TR/2014/REC-html5-20141028/rendering.html#hidden-elements",
  78. "heading": "HTML 5 W3C 勧告. 10.3.1. Hidden elements",
  79. "sub": "W3C勧告、2014年10月28日",
  80. },
  81. {
  82. "title": "HTML 4.01 Specification W3C Recommendation. 12.4 Path information: the BASE element. W3C Recommendation 24 December 1999.",
  83. "href": "https://www.w3.org/TR/html401/struct/links.html#h-12.4",
  84. "heading": "HTML 4.01 Specification W3C 勧告. 12.4 Path information: the BASE element",
  85. "sub": "W3C勧告1999年12月24日",
  86. },
  87. {
  88. "title": "HTML 3.2 Reference Specification. W3C Recommendation 14-Jan-1997.",
  89. "href": "https://www.w3.org/TR/2018/SPSD-html32-20180315/#base",
  90. "heading": "HTML 3.2 Reference Specification BASE",
  91. "sub": "W3C勧告1997年1月14日",
  92. },
  93. {
  94. "title": " Hypertext Markup Language - 2.0. November 1995.",
  95. "href": "https://www.ietf.org/rfc/rfc1866.txt",
  96. "heading": "Hypertext Markup Language - 2.0",
  97. "sub": "November 1995",
  98. },
  99. {
  100. "title": "Hypertext Markup Language (HTML). June 1993.",
  101. "href": "https://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt",
  102. "heading": "Hypertext Markup Language (HTML)",
  103. "sub": "June 1993",
  104. },
  105. {
  106. "title": "MDN Web Docs. HTML <base>: The Document Base element.",
  107. "href": "https://developer.mozilla.org/ja/docs/Web/HTML/Element/base",
  108. "heading": "<base>: 文書の基底 URL 要素 - HTML: ハイパーテキストマークアップ言語 | MDN",
  109. },
  110. ],
  111. "version": {
  112. "first": "HTML",
  113. "latest": "HTML Living Standard",
  114. },
  115. }
  116. }

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

最終確認日

2024-09-01


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

base要素 は、
head要素に
1つだけ
配置できます。

base要素が使用できるコンテキスト(Context文脈)は、他にbase要素が配置されていないhead要素コンテンツとしてです。

別の言い方で細かく言うと、base要素は、0 または1つの配置が可能です。

document
html
head
body
base
メタ
フロー
  1. <head>
  2. <meta charset="UTF-8">
  3. <title>離珠のHTMLでしぃ!</title>
  4. <base href="http://risyu.in.coocan.jp/" target="_self">
  5. </head>

head要素のコンテンツの一部として、base要素を1つだけ配置できます。
文字エンコーディング宣言を含む meta要素を1番目, title要素を2番目, base要素を3番目のhead要素の子要素として設置する事をお勧めします。


3.コンテンツモデル

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

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

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

base要素は、属性(属性値)によって基底URLと閲覧コンテキストの名前(メタデータ)を表します。


4.コンテンツ属性

base要素 は、
グローバル属性と、
href,
target を
設定できます。

base要素に指定することができる属性は、グローバル属性href属性, target属性 を設定できます。

base要素は、href属性, target属性のいずれかまたはその両方が必要です。

href属性

  1. <base href="http://risyu.in.coocan.jp/">
  2. <link rel="stylesheet" href="./Sample.css">

href属性は、文書全体を通して相対 URL に使用される基底URLを指定します。絶対 URL と相対 URL が使用できます。

href属性を持つbase要素が複数ある場合、最初の要素以外はすべて無視されます。

この例示では、"http://risyu.in.coocan.jp/Sample.css" を示す事になります。

target属性

  1. <base target="_self">

target属性は、表示する場所を指定します。キーワードまたは作者が定義した名前で既定の閲覧コンテキストを表し、a要素またはform要素が明示的にtarget属性を持たない場合に、移動の結果を表示する場所として使用されます。

target属性を持つbase要素が複数ある場合、最初の要素以外はすべて無視されます。


5.DOM インターフェイス

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

base要素を JavaScript などで操作するには、documentquerySelector()メソッドで条件を絞って、要素を取得する方法があります。base要素は配置できるのは1つだけなので、要素セレクタで base と指定して、base要素のリストの最初の1つを取得できます。この時に取得できるのはHTMLBaseElement インターフェイスです。

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

このページの基底URLは、
"〇〇"です。

  1. <p>このページの説明は、
  2. "<code id="icdJs501">〇〇</code>"です。</p>
  3. <script>
  4. document.addEventListener("DOMContentLoaded", function() {
  5. var voBase = document.querySelector("base");
  6. if (voBase && voBase.href) {
  7. document.getElementById("icdJs501").textContent = voBase.href;
  8. } else {
  9. document.getElementById("icdJs501").textContent = '指定がありません';
  10. });
  11. </script>

base要素から、href属性の値を取得する例です。例示で表示する為に、HTML文書の読み込みと解析が終了した時に処理するコードとしています。


6.レンダリング

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

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

メタデータである基底URLや閲覧コンテキストの名前を記述する為の要素なので、ビジュアルメディアでボックスを生成する様な指定は行わないのが良いでしょう。

  1. head > * { display: none; }
  2. head, base { display: block; }
  3. base::after { content: "target=" attr(target);; }
  4. base { margin-top: 11em;; }

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

title要素を表示するサンプル へのリンクはこちらです


7.気を付ける点

記述順

base要素は、href属性を持っている場合、html要素を除いて、URLを取得するように定義された属性を持つツリー内の他の要素の前に来る必要があります(その manifest属性base要素の影響を受けません)。


8.付記