1.仕様
DL要素は、
関連付けをした
項目の一覧を
表します。
- dl
-
定義一覧 (definition list)
- 種類
-
通常要素
- カテゴリ
-
- フロー
コンテンツ - パルパブル
コンテンツ (条件付き)
要素の子に少なくとも1つの dt要素, dd要素のグループが含まれる場合は、パルパブルコンテンツ。
- フロー
- コンテンツモデル
-
- 1つ以上のdt
要素 とそれに続く1つ以上のdd要素 の組み合わせを0個以上 オプションでスクリプトをサポートする要素 が混在 - 1つ以上のdiv
要素 オプションでスクリプトをサポートする要素 が混在
1つ以上のdt
要素 とそれに続く1つ以上のdd要素 の組み合わせを0個以上が配置できます。オプションで、スクリプトをサポートする要素 を混在して配置できます。
1つ以上のdiv要素 が配置できます。オプションで、スクリプトをサポートする要素 を混在して配置できます。スクリプトを
サポートする要素 に分類される要素は、script要素 , template要素 です。この時のdiv要素のコンテンツモデルは、'div (dt+,dd+) +(%Scriptsupporting)' となります。
- 1つ以上のdt
- タグの省略
-
どちらのタグも省略できません。
- コンテンツ属性
-
グローバル属性のみ
- DOM インターフェイス
-
HTMLDListElement
[Exposed=Window]
interface HTMLDListElement : HTMLElement {
[HTMLConstructor] constructor();
// also has obsolete members
};
HTMLElement
[Exposed=Window]
interface HTMLElement : Element {
[HTMLConstructor] constructor();
// metadata attributes
[CEReactions] attribute DOMString title;
[CEReactions] attribute DOMString lang;
[CEReactions] attribute boolean translate;
[CEReactions] attribute DOMString dir;
// user interaction
[CEReactions] attribute (boolean or unrestricted double or DOMString)? hidden;
[CEReactions] attribute DOMString inert;
undefined click();
[CEReactions] attribute DOMString accessKey;
readonly attribute DOMString accessKeyLabel;
[CEReactions] attribute boolean draggable;
[CEReactions] attribute boolean spellcheck;
[CEReactions] attribute DOMString writingSuggestions;
[CEReactions] attribute DOMString autocapitalize;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString innerText;
[CEReactions] attribute [LegacyNullToEmptyString] DOMString outerText;
ElementInternals attachInternals();
// The popover API
undefined showPopover();
undefined hidePopover();
boolean togglePopover(optional boolean force);
[CEReactions] attribute DOMString? popover;
};
HTMLElement includes GlobalEventHandlers;
HTMLElement includes ElementContentEditable;
HTMLElement includes HTMLOrSVGElement;
Element
[Exposed=Window]
interface Element : Node {
readonly attribute DOMString? namespaceURI;
readonly attribute DOMString? prefix;
readonly attribute DOMString localName;
readonly attribute DOMString tagName;
[CEReactions] attribute DOMString id;
[CEReactions] attribute DOMString className;
[SameObject, PutForwards=value] readonly attribute DOMTokenList classList;
[CEReactions, Unscopable] attribute DOMString slot;
boolean hasAttributes();
[SameObject] readonly attribute NamedNodeMap attributes;
sequence<DOMString> getAttributeNames();
DOMString? getAttribute(DOMString qualifiedName);
DOMString? getAttributeNS(DOMString? namespace, DOMString localName);
[CEReactions] undefined setAttribute(DOMString qualifiedName, DOMString value);
[CEReactions] undefined setAttributeNS(DOMString? namespace, DOMString qualifiedName, DOMString value);
[CEReactions] undefined removeAttribute(DOMString qualifiedName);
[CEReactions] undefined removeAttributeNS(DOMString? namespace, DOMString localName);
[CEReactions] boolean toggleAttribute(DOMString qualifiedName, optional boolean force);
boolean hasAttribute(DOMString qualifiedName);
boolean hasAttributeNS(DOMString? namespace, DOMString localName);
Attr? getAttributeNode(DOMString qualifiedName);
Attr? getAttributeNodeNS(DOMString? namespace, DOMString localName);
[CEReactions] Attr? setAttributeNode(Attr attr);
[CEReactions] Attr? setAttributeNodeNS(Attr attr);
[CEReactions] Attr removeAttributeNode(Attr attr);
ShadowRoot attachShadow(ShadowRootInit init);
readonly attribute ShadowRoot? shadowRoot;
Element? closest(DOMString selectors);
boolean matches(DOMString selectors);
boolean webkitMatchesSelector(DOMString selectors); // legacy alias of .matches
HTMLCollection getElementsByTagName(DOMString qualifiedName);
HTMLCollection getElementsByTagNameNS(DOMString? namespace, DOMString localName);
HTMLCollection getElementsByClassName(DOMString classNames);
[CEReactions] Element? insertAdjacentElement(DOMString where, Element element); // legacy
undefined insertAdjacentText(DOMString where, DOMString data); // legacy
};
GlobalEventHandlers
interface mixin GlobalEventHandlers {
attribute EventHandler onabort;
attribute EventHandler onauxclick;
attribute EventHandler onbeforeinput;
attribute EventHandler onbeforematch;
attribute EventHandler onbeforetoggle;
attribute EventHandler onblur;
attribute EventHandler oncancel;
attribute EventHandler oncanplay;
attribute EventHandler oncanplaythrough;
attribute EventHandler onchange;
attribute EventHandler onclick;
attribute EventHandler onclose;
attribute EventHandler oncontextlost;
attribute EventHandler oncontextmenu;
attribute EventHandler oncontextrestored;
attribute EventHandler oncopy;
attribute EventHandler oncuechange;
attribute EventHandler oncut;
attribute EventHandler ondblclick;
attribute EventHandler ondrag;
attribute EventHandler ondragend;
attribute EventHandler ondragenter;
attribute EventHandler ondragleave;
attribute EventHandler ondragover;
attribute EventHandler ondragstart;
attribute EventHandler ondrop;
attribute EventHandler ondurationchange;
attribute EventHandler onemptied;
attribute EventHandler onended;
attribute OnErrorEventHandler onerror;
attribute EventHandler onfocus;
attribute EventHandler onformdata;
attribute EventHandler oninput;
attribute EventHandler oninvalid;
attribute EventHandler onkeydown;
attribute EventHandler onkeypress;
attribute EventHandler onkeyup;
attribute EventHandler onload;
attribute EventHandler onloadeddata;
attribute EventHandler onloadedmetadata;
attribute EventHandler onloadstart;
attribute EventHandler onmousedown;
[LegacyLenientThis] attribute EventHandler onmouseenter;
[LegacyLenientThis] attribute EventHandler onmouseleave;
attribute EventHandler onmousemove;
attribute EventHandler onmouseout;
attribute EventHandler onmouseover;
attribute EventHandler onmouseup;
attribute EventHandler onpaste;
attribute EventHandler onpause;
attribute EventHandler onplay;
attribute EventHandler onplaying;
attribute EventHandler onprogress;
attribute EventHandler onratechange;
attribute EventHandler onreset;
attribute EventHandler onresize;
attribute EventHandler onscroll;
attribute EventHandler onscrollend;
attribute EventHandler onsecuritypolicyviolation;
attribute EventHandler onseeked;
attribute EventHandler onseeking;
attribute EventHandler onselect;
attribute EventHandler onslotchange;
attribute EventHandler onstalled;
attribute EventHandler onsubmit;
attribute EventHandler onsuspend;
attribute EventHandler ontimeupdate;
attribute EventHandler ontoggle;
attribute EventHandler onvolumechange;
attribute EventHandler onwaiting;
attribute EventHandler onwebkitanimationend;
attribute EventHandler onwebkitanimationiteration;
attribute EventHandler onwebkitanimationstart;
attribute EventHandler onwebkittransitionend;
attribute EventHandler onwheel;
};
ElementContentEditable
interface mixin ElementContentEditable {
[CEReactions] attribute DOMString contentEditable;
[CEReactions] attribute DOMString enterKeyHint;
readonly attribute boolean isContentEditable;
[CEReactions] attribute DOMString inputMode;
};
HTMLOrSVGElement
interface mixin HTMLOrSVGElement {
[SameObject] readonly attribute DOMStringMap dataset;
attribute DOMString nonce; // intentionally no [CEReactions]
[CEReactions] attribute boolean autofocus;
[CEReactions] attribute long tabIndex;
undefined focus(optional FocusOptions options = {});
undefined blur();
};
- ARIA in HTML
-
暗黙的="
No
" ARIAロール="あり" aria-* 属性="GlobalAny
"暗黙的な ARIAセマンティクスがありませんが、意味はあり、この意味は、ARIA によって提供されず、ARIA のユーザーに公開されていないロール、状態、プロパティで表現される可能性があります。
作成者が要素に指定してもよい ARIAロール値は、 group, list, none, presentation です。
グローバル aria-* 属性と、許可されたロールに適用される任意の aria-* 属性が記述できます。
- レンダリング
- ブロック
ボックス リスト
dl {
display: block;
margin-block: 1em;
unicode-bidi: isolate;
}
:is(dir, dl, menu, ol, ul) dl { margin-block: 0; }
CSS を大雑把に読むと、 ブロックレベルのブロックコンテナボックス(ブロックボックス)を生成します。 などになります。
- 説明
-
dl
要素 は、関連付け一覧を表します。dl
要素 は、定義用語とその説明を関連付けした一覧(リスト・list)を表します。
名前と値のグループは、用語と定義, メタデータのトピックと値, 質問と回答, またはその他の名前と値のデータのグループです。HTML Living Standard での例示で、 1 つのグループに 2 つのメタデータラベルと 2 つの値がある例があるので、n 対 m の関係付けが可能な様です。<!DOCTYPE html>
<html lang=
"ja"> <head>
<meta charset=
"utf-8"> <title>dl要素の例 - (Example of dl element) | 離珠のHTMLでしぃ!</title>
</head>
<body>
<h1>dl要素の例</h1>
<dl>
<div>
<dt>用語</dt>
<dd>説明</dd>
</div>
</dl>
</body>
</html>
このサンプルへのリンクです。
(./exdl.htm) - 参照元
-
参照元
- HTML Living Standard. 4.4.9 The dl element (Last Updated 27 August 2024)
- HTML Living Standard. 15 Rendering 15.3.7 Lists (Last Updated 27 August 2024)
- HTML 5.2 W3C 勧告. 4.4.9 The dl element (W3C勧告、2017年12月14日)
- HTML 5.2 W3C 勧告. 10.3.8. Lists (W3C勧告、2017年12月14日)
- HTML 5.1 W3C 勧告. 4.4.8 The dl element (W3C勧告、2016年11月1日)
- HTML 5.1 W3C 勧告. 10.3.8. Lists (W3C勧告、2016年11月1日)
- HTML 4.01 Specification W3C 勧告. 10.3 Definition lists: the DL, DT, and DD elements (W3C勧告1999年12月24日)
- HTML 3.2 Reference Specification (W3C勧告1997年1月14日)
- Hypertext Markup Language - 2.0 (November 1995)
- Hypertext Markup Language (HTML) (June 1993)
- <dl>: 説明リスト要素 - HTML: ハイパーテキストマークアップ言語 | MDN
- JSONデータ
-
JSON形式での、データのイメージです。
{
"dl": {
"check": "2024-09-01",
"group": "List",
"element": "- - ((dt+,dd+)|div)* +(%Scriptsupporting) -- definition list. (Normal elements.) [Flow|PalpableLimited] --",
"attlist": {"%Global;": ""},
"comment": "定義一覧 (definition list)",
"point": "関連付け一覧を表します。",
"description": [
"定義用語とその説明を関連付けした一覧(リスト・list)を表します。",
"名前と値のグループは、用語と定義, メタデータのトピックと値, 質問と回答, またはその他の名前と値のデータのグループです。HTML Living Standard での例示で、 1 つのグループに 2 つのメタデータラベルと 2 つの値がある例があるので、n 対 m の関係付けが可能な様です。",
],
"kind": "Normal",
"categories": [
"Flow",
"PalpableLimited",
],
"categoriessupplement": "要素の子に少なくとも1つの dt要素, dd要素のグループが含まれる場合は、パルパブルコンテンツ。",
"used": "parent (%Flow)*",
"contentmodel": [
"dl (dt+,dd+)* +(%Scriptsupporting)",
"dl (div)+ +(%Scriptsupporting)",
],
"contentmodelsupplement": "この時のdiv要素のコンテンツモデルは、'div (dt+,dd+) +(%Scriptsupporting)' となります。",
"tag": [
"-",
"-",
],
"attributes": "Global",
"dominterface": "HTMLDListElement",
"rendering": [
"Lists",
"Bidirectional",
],
"reference": [
{
"title": "HTML Living Standard. 4.4.9 The dl element.",
"href": "https://html.spec.whatwg.org/multipage/grouping-content.html#the-dl-element",
"heading": "HTML Living Standard. 4.4.9 The dl element",
"sub": "Last Updated 27 August 2024",
},
{
"title": "HTML Living Standard. 15 Rendering 15.3.7 Lists.",
"href": "https://html.spec.whatwg.org/multipage/rendering.html#lists",
"heading": "HTML Living Standard. 15 Rendering 15.3.7 Lists",
"sub": "Last Updated 27 August 2024",
},
{
"title": "HTML 5.2 W3C Recommendation. 4.4.9 The dl element. W3C Recommendation, 14 December 2017.",
"href": "https://www.w3.org/TR/2017/REC-html52-20171214/grouping-content.html#the-dl-element",
"heading": "HTML 5.2 W3C 勧告. 4.4.9 The dl element",
"sub": "W3C勧告、2017年12月14日",
},
{
"title": "HTML 5.2 W3C Recommendation. 10.3.8. Lists.",
"href": "https://www.w3.org/TR/2017/REC-html52-20171214/rendering.html#section-lists",
"heading": "HTML 5.2 W3C 勧告. 10.3.8. Lists",
"sub": "W3C勧告、2017年12月14日",
},
{
"title": "HTML 5.1 W3C Recommendation. 4.4.8 The dl element. W3C Recommendation, 1 November 2016.",
"href": "https://www.w3.org/TR/2016/REC-html51-20161101/grouping-content.html#the-dl-element",
"heading": "HTML 5.1 W3C 勧告. 4.4.8 The dl element",
"sub": "W3C勧告、2016年11月1日",
},
{
"title": "HTML 5.1 W3C Recommendation. 10.3.8. Lists. W3C Recommendation, 1 November 2016.",
"href": "https://www.w3.org/TR/2016/REC-html51-20161101/rendering.html#section-lists",
"heading": "HTML 5.1 W3C 勧告. 10.3.8. Lists",
"sub": "W3C勧告、2016年11月1日",
},
{
"title": "HTML 4.01 Specification W3C Recommendation. 10.3 Definition lists: the DL, DT, and DD elements. W3C Recommendation 24 December 1999.",
"href": "https://www.w3.org/TR/html401/struct/lists.html#h-10.3",
"heading": "HTML 4.01 Specification W3C 勧告. 10.3 Definition lists: the DL, DT, and DD elements",
"sub": "W3C勧告1999年12月24日",
},
{
"title": "HTML 3.2 Reference Specification. W3C Recommendation 14-Jan-1997.",
"href": "https://www.w3.org/TR/2018/SPSD-html32-20180315/",
"heading": "HTML 3.2 Reference Specification",
"sub": "W3C勧告1997年1月14日",
},
{
"title": "Hypertext Markup Language - 2.0. November 1995.",
"href": "https://www.ietf.org/rfc/rfc1866.txt",
"heading": "Hypertext Markup Language - 2.0",
"sub": "November 1995",
},
{
"title": "Hypertext Markup Language (HTML). June 1993.",
"href": "https://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt",
"heading": "Hypertext Markup Language (HTML)",
"sub": "June 1993",
},
{
"title": "MDN Web Docs. HTML <dl>: The Description List element.",
"href": "https://developer.mozilla.org/ja/docs/Web/HTML/Element/dl",
"heading": "<dl>: 説明リスト要素 - HTML: ハイパーテキストマークアップ言語 | MDN",
},
],
"version": {
"first": "HTML",
"latest": "HTML Living Standard",
},
}
}
注意: 簡易に描画する為に、各項目の後ろに
,
を付与しています。JSON の形式では、末尾の項目の後には,
は付けません。 - 最終確認日
-
2024-09-01
2.使用可能な箇所
フロー
受け入れる要素に
配置できます。
3.配置できるコンテンツ
dt要素,
dd要素を
配置できます。
dl
このグループは、div要素でラップ出来ます。
dt
script
名前と値のグループは、用語と定義, メタデータのトピックと値, 質問と回答, またはその他の名前と値のデータのグループです。
グループ内の値は代替です。同じ値の一部を形成する複数の段落はすべて同じ dd要素内で指定する必要があります。
グループのリストの順序、および各グループ内の名前と値の順序は重要な場合があります。
content
content
ツリーで表すと、dl
フォーマット
コンテキスト
レベル
ボックス
レベル
ボックス
ボックスで表すと、dl
dl
尚、この説明は各要素のレンダリングに関する指定が既定値での話で、個々にスタイルを指定した場合はこの限りではありません。
dt
グループは複数配置する事ができます。グループの順序に意味があるか否かは明示されていません。グループを表すボックスは、この配置の仕方では存在しません。
4.属性
グローバル属性のみ、
設定できます。
dl
5.Web API
id属性を用いて
getElementById()メソッドで
要素を取得する方法がお勧めです。
dl
6.レンダリング
dl {
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
unicode-bidi: isolate;
}
dl
ブロック
unicode-bidi
は、置換されない要素のレンダリングでの Bidirectional text(双方向テキスト) に於いての期待される仕様の様です。
:is(dir, dl, menu, ol, ul) dl {
margin-block-start: 0;
margin-block-end: 0;
}
ul
<dl style=
"padding-left: 1.5em;"> <div style=
"display: list-item; list-style-type: decimal;"> <dt>
Term1 </dt> <dd>
Desc1 </dd> </div>
<div style=
"display: list-item; list-style-type: decimal;"> <dt>
Term2 </dt> <dd>
Desc2 </dd> </div>
</dl>
style
- Term1
- Desc1
- Term2
- Desc2
<dl class=
"cdlSample661;"> <div>
<dt>
Term1 </dt> <dd>
Desc1 </dd> </div>
<div>
<dt>
Term2 </dt> <dd>
Desc2 </dd> </div>
</dl>
cdlSample661 {
padding: 0.3em;
border-style: dotted;
border-width: 0.0625em;
border-left-style: solid;
border-left-width: 0.5em;
border-radius: 0.8em;
color: inherit;
background-color: #efffff;
border-color: rgba(102, 102, 255, 0.6);
}
cdlSample661 > div {
margin: 0 0 0.5em 0;
padding: 0.5em;
border-style: dotted;
border-width: 0.0625em;
border-radius: 0.8em;
color: inherit;
border-color: rgba(102, 102, 255, 0.6);
}
cdlSample661 > div:last-child {
margin-bottom: 0;
}
cdlSample661 dt {
font-weight: bold;
}
ここのページの「仕様」で用いているスタイルシートの記述例です。
- Term1
- Desc1
- Term2
- Desc2
<dl class=
"cdlSample662;"> <div>
<dt>
Term1 </dt> <dd>
Description1 </dd> </div>
<div>
<dt>
Term2 </dt> <dd>
Description2 </dd> </div>
</dl>
cdlSample662 > div {
margin: 0 0 1.0em 0;
}
cdlSample662 dt {
display: inline-block;
margin: 0 0.5em 1em 0;
padding: 0.2em 0.3em 0.1em 1.7em;
border-style: double;
border-width: 0.3em 0;
min-width: auto;
text-indent: -1.5em;
white-space: nowrap;
word-wrap: normal;
word-break: keep-all;
font: bold 1.17em/1.2 "Noto Sans JP", serif;
color: inherit;
background-color: #fff;
border-color: #99f;
box-shadow: 0.25em 0.25em 0.25em 0.05em #fcf;
}
cdlSample661 dd {
margin: 0;
}
このサイトの「小見出し」で用いているスタイルシートの記述例です。
- Term1
- Description1
- Term2
- Description2
7.気を付ける点
要素の
装飾と選択は、
別々に考えましょう。
装飾を理由とした要素の選択は止めましょう。
<div class=
"cdvSample671"> <dl>
<dt>
DFN要素 </dt> <dd>
用語の定義インスタンスを表します。 </dd> </dl>
<p>
<dfn>
DFN要素 </dfn> <span> とは、 </span> <span>
用語の定義インスタンスを表します。 </span> </p>
</div>
.cdvSample671 dfn {
display: block;
}
.cdvSample671 dfn + span {
display: none;
}
.cdvSample671 span {
display: block; margin-left: 40px;
}
dt
- DFN要素
- 用語の定義インスタンスを表します。
DFN要素とは、 用語の定義インスタンスを表します。
<div class=
"cdvSample672"> <dl>
<dt>
DFN要素 </dt> <dd>
用語の定義インスタンスを表します。 </dd> </dl>
<p>
<dfn>
DFN要素 </dfn> とは、 <span>
用語の定義インスタンスを表します。 </span> </p>
</div>
.cdvSample672 dt {
display: inline;
}
.cdvSample672 dt::after {
content: "とは、";
}
.cdvSample672 dd {
display: inline; margin: 0;
}
dt
- DFN要素
- 用語の定義インスタンスを表します。
DFN要素とは、 用語の定義インスタンスを表します。
<div class=
"cdvSample673"> <dl>
<div>
<dt>
DFN要素 </dt> <dd>
用語の定義インスタンスを表します。 </dd> </div>
<div>
<dt>
DL要素 </dt> <dd>
関連付け一覧を表します。 </dd> </div>
</dl>
</div>
.cdvSample673 dl {
display: table;
}
.cdvSample673 dl > div {
display: table-row;
}
.cdvSample673 dl > div > dt ,
.cdvSample673 dl > div > dd {
display: table-cell; margin: 0; padding: 2px; border: solid 1px blue; vertical-align: middle;
}
.cdvSample673 dl > div > dt {
font-weight: bold;
}
dl
- DFN要素
- 用語の定義インスタンスを表します。
- DL要素
- 関連付け一覧を表します。