[9] [[HTML]] の [CODE(HTMLe)[[[base]]]] 要素の
[DFN[[CODE(HTMLa)[href]] 属性]]は、その HTML
文書内の[[相対URI参照]]を解決する際に使用する[[絶対URI]]
を指定します。
[10] 仕様書:
- [[HTML 2.0]]: [[RFC 1866]] 5.2.2. Base Address: BASE
- [[HTML 4]] [CODE(HTMLa)[href]]
[[#comment]]
** 属性値
[11] この属性は [CODE(SGML)[%[[URI]]]] ([[絶対URI参照]])
で、 [[SGML]] 的には [CODE(SGML)[[[CDATA]]]] です。
更に仕様書本文で絶対 URI に限定されています [SRC[HTML 2.0, HTML 4]]。
HTML 4 仕様書は[[素片識別子]]について全体的に曖昧で、
[CODE(HTMLe)[base]] [CODE(HTMLa)[href]]
に素片識別子を含めて構わないのか否かは不明です。
(あってもなくても機能的に変わらないのですが。)
RFC 1866 (HTML 2.0) も曖昧なところはありますが、
こちらは素片識別子は含まない[Q[絶対 URI]] である可能性が高そうです。
[12] 省略の可否:
:HTML 2.0 (RFC 1866):必須。
:HTML 4 Strict:必須。
:HTML 4 Transitional:省略可能。
(その場合 [CODE(HTMLa)[[[target]]]] がないと [CODE(HTMLe)[base]]
が意味を成さないのですが、仕様書には言及がありません。)
:XHTML 1.0 FE:省略可能。
:XHTML 1.0 SE Strict:必須。
* 文脈
[26] [CODE(HTMLa)@en[[[href]]]] [[属性]]のある [CODE(HTMLe)@en[[[base]]]] [[要素]]は、 [[URL]]
を値として持つ[[属性]]より前になければ[['''なりません''']] [SRC[[[HTML]]]]。ただしこれには幾つか例外があります。
- [27] [[システム識別子]]の値は [[URL]] であり、また[[公開識別子]]も値が [[URL]] となることがありますが、
これらは[[属性]]ではありませんから対象外です。
- [28] [CODE(XMLa)@en[[[xml-stylesheet]]]] [[処理指令]]には [CODE(XMLa)@en[[[href]]]]
[[擬似属性]]がありますが、これは[[属性]]ではありませんから対象外です。
- [29] [CODE(HTMLe)@en[[[html]]]] [[要素]]の [CODE(HTMLa)@en[[[manifest]]]] [[属性]]は対象外です。 [SRC[[[HTML]]]]
- [30] [CODE(HTMLe)@en[[[head]]]] [[要素]]の [CODE(HTMLa)@en[[[profile]]]] [[属性]]は既に廃止されていますが、
対象外と考えられます。 [SRC[[[OBSVOCAB]]]]
- [32] [CODE(XMLa)@en[[[xmlns]]]] [[属性]]群の値は [[URL]] ですが、これは[[解決]]されることが無く、対象外と思われます。
- [31] [CODE(HTMLe)@en[[[html]]]] [[要素]]や [CODE(HTMLe)@en[[[head]]]] [[要素]]には
[CODE(XMLa)@en[[[xml:base]]]] [[属性]]を指定できますが、これは対象内かもしれません。
** 応用
[13] [CODE(HTMLa)[href]] 属性値は[[基底URI]]として使われます。
詳しくは [[HTML//基底URI]] をご覧ください。
[[#comment]]
** メモ
[24]
[CITE[ and xml:base="" and HTMLBaseElement.href]] ([CODE[2008-07-01 22:43:30 +09:00]] 版)
([[名無しさん]])
[25]
>>24
:[[Firefox 2]]: [CODE(XMLa)@en[[[xml]]:[[base]]]] is applied to compute reflected DOM attribute value.
(However, [CODE(XMLa)@en[[[xml]]:[[base]]]] does not affect to base URI computation for [CODE(HTMLe)@en[[[base]]]] [CODE(HTMLa)@en[[[href]]]];
relative URL in [CODE(HTMLe)@en[[[base]]]] [CODE(HTMLa)@en[[[href]]]] is simply
ignored.)
:[[Opera]] 9: [CODE(XMLa)@en[[[xml]]:[[base]]]] is applied to compute reflected DOM attribute value.
([CODE(XMLa)@en[[[xml]]:[[base]]]] on [CODE(HTMLe)@en[[[base]]]] doss also
affect to base URL of the document.)
:[[Safari]] 3.1:[CODE(DOMa)@en[[[href]]]] DOM attribute takes the same
value as the [CODE(HTMLa)@en[[[href]]]] content attribute for
[CODE(HTMLe)@en[[[base]]]] elements. ([CODE(XMLa)@en[[[xml]]:[[base]]]]
on [CODE(HTMLe)@en[[[base]]]] dose not affect to the base URL of
the document.)