HTML の定義要素 (<dfn>) は、定義句や文の文脈の中で定義している用語を示すために用いられます。 <dfn>
の直近の祖先である {{HTMLElement("p")}} 要素、 {{HTMLElement("dt")}}/{{HTMLElement("dd")}} の組み合わせ、 {{HTMLElement("section")}} 要素が用語の定義とみなされます。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
コンテンツカテゴリ | フローコンテンツ, 記述コンテンツ, 知覚可能コンテンツ |
---|---|
許可されている内容 | 記述コンテンツ、ただし {{HTMLElement("dfn")}} 要素を子孫にしてはいけません。 |
タグの省略 | {{no_tag_omission}} |
許可されている親要素 | 記述コンテンツを受け入れるすべての要素 |
許可されている ARIA ロール | すべて |
DOM インターフェイス | {{domxref("HTMLElement")}} |
この要素の属性はグローバル属性を含みます。
HTML5 においては、この要素の {{htmlattrxref("title")}} 属性は後述のとおり、通常と異なる特別な意味合いを持ちます。
<dfn>
要素の使用については、完全に明らかになっていない側面がいくつかあります。ここでそれらを説明します。
定義される用語は、以下の規則に従います。
<dfn>
要素に {{htmlattrxref("title")}} 属性がある場合、 title
属性の値が定義される用語とみなされます。その要素の中の文字列もその用語でなければなりませんが、略語 (おそらく {{HTMLElement("abbr")}} を使用) や、用語のその他の形でも構いません。<dfn>
が単一の子要素を持ち、自分自身には何も文字列がなく、かつその子要素が title
属性を持つ {{HTMLElement("abbr")}} 要素である場合は、 <abbr>
要素の title
の値が定義する用語です。<dfn>
要素の文字列コンテンツが定義される用語です。これは{{anch("Basic identification of a term", "以下の最初の例")}}で示します。もし <dfn>
要素に title
属性があれば、それが定義する用語であり、それ以外の文字列ではありません。
<dfn>
要素へのリンク<dfn>
要素に {{htmlattrxref("id")}} 属性をつけた場合は、 {{HTMLElement("a")}} 要素を使用してそこにリンクすることができます。用語の使用時にはそのようなリンクを使用して、用語のリンクをクリックすることで読者が用語の定義にすばやく移動できるようにしてください。
これは以下の{{anch("Links to definitions", "定義へのリンク")}}の例で示します。
<dfn>
要素は定義される用語を示すものです。用語の定義はその要素を含んでいる {{HTMLElement("p")}}, {{HTMLElement("section")}}, または定義リスト関連要素 (ふつうは {{HTMLElement("dt")}} と {{HTMLElement("dd")}} の組) の中で行ってください。<dfn>
要素に {{htmlattrxref("title")}} 属性がある場合は、その属性値が用語です。<dfn>
要素が含む文字列コンテンツが用語です。様々な利用シナリオの例をいくつか見てみましょう。
この例は単に、定義の中の用語の位置を識別するために素の <dfn>
要素を使用しています。
<p>The <strong>HTML Definition element</strong> (<strong><dfn><dfn></dfn></strong>) is used to indicate the term being defined within the context of a definition phrase or sentence.</p>
<dfn>
要素に title
がないので、 <dfn>
要素自身の文字列コンテンツが定義される用語として使用されます。
このブラウザーでは、このように描画されます。
{{EmbedLiveSample("Basic_identification_of_a_term", 650, 120)}}
定義へのリンクを追加するには、いつも通りの方法で {{HTMLElement("a")}} 要素を使ってリンクを作成します。
<p>The <strong>HTML Definition element</strong> (<strong><dfn id="definition-dfn"><dfn></dfn></strong>) is used to indicate the term being defined within the context of a definition phrase or sentence.</p> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Graece donan, Latine voluptatem vocant. Confecta res esset. Duo Reges: constructio interrete. Scrupulum, inquam, abeunti; </p> <p>Negare non possum. Dat enim intervalla et relaxat. Quonam modo? Equidem e Cn. Quid de Pythagora? In schola desinis. </p> <p>Ubi ut eam caperet aut quando? Cur iustitia laudatur? Aperiendum est igitur, quid sit voluptas; Quid enim? Non est igitur voluptas bonum. Urgent tamen et nihil remittunt. Quid enim possumus hoc agere divinius? </p> <p>Because of all of that, we decided to use the <code><a href="#definition-dfn"><dfn></a></code> element for this project.</p>
ここで {{htmlattrxref("id")}} 属性の "definition-dfn"
の値をリンク先として使用して、定義を見ることができます。その後で、 <a>
の {{htmlattrxref("href", "a")}} 属性を "#definition-dfn"
に設定して、定義に戻るリンクを設定します。
結果のコンテンツはこのようになります。
{{EmbedLiveSample("Links_to_definitions", 650, 300)}}
場合によっては、用語を定義する際に略語を使用したくなる場合もあるでしょう。これは <dfn>
と {{HTMLElement("abbr")}} 要素を組み合わせて、このように実現できます。
<p>The <dfn><abbr title="Hubble Space Telescope">HST</abbr></dfn> is among the most productive scientific instruments ever constructed. It has been in orbit for over 20 years, scanning the sky and returning data and photographs of unprecedented quality and detail.</p> <p>Indeed, the <abbr title="Hubble Space Telescope">HST</abbr> has arguably done more to advance science than any device ever built.</p>
<abbr>
要素が <dfn>
の中で入れ子になっています。前者は用語が略語 ("HST") であることを示し、完全な用語 ("Hubble Space Telescope") を title
属性で定義します。後者は略語が定義される用語であることを表します。
上記のコードの出力はこのようになります。
{{EmbedLiveSample("Using_abbreviations_and_definitions_together", 650, 200)}}
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('HTML WHATWG', 'semantics.html#the-dfn-element', '<dfn>')}} | {{Spec2('HTML WHATWG')}} | |
{{SpecName('HTML5 W3C', 'text-level-semantics.html#the-dfn-element', '<dfn>')}} | {{Spec2('HTML5 W3C')}} | |
{{SpecName('HTML4.01', 'struct/text.html#h-9.2.1', '<dfn>')}} | {{Spec2('HTML4.01')}} |
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
{{Compat("html.elements.dfn")}}