活文档标准 — 最后更新 2024 年 9 月 12 日
p
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
p
元素紧接在 address
、article
、aside
、blockquote
、details
、dialog
、div
、dl
、fieldset
、figcaption
、figure
、footer
、form
、h1
、h2
、h3
、h4
、h5
、h6
、header
、hgroup
、hr
、main
、menu
、nav
、ol
、p
、pre
、search
、section
、table
或 ul
元素之后,或者如果父元素中没有更多内容,并且父元素是 HTML 元素,而不是 a
、audio
、del
、ins
、map
、noscript
或 video
元素,或者是一个 自主的自定义元素。[Exposed =Window ]
interface HTMLParagraphElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
虽然段落通常在视觉媒体中由物理上通过空行与相邻块分隔开的文本块来表示,但样式表或用户代理同样有理由以不同的方式呈现段落断裂,例如使用内联段落符号(¶)。
以下示例是符合 HTML 片段
< p > The little kitten gently seated herself on a piece of
carpet. Later in her life, this would be referred to as the time the
cat sat on the mat.</ p >
< fieldset >
< legend > Personal information</ legend >
< p >
< label > Name: < input name = "n" ></ label >
< label >< input name = "anon" type = "checkbox" > Hide from other users</ label >
</ p >
< p >< label > Address: < textarea name = "a" ></ textarea ></ label ></ p >
</ fieldset >
< p > There was once an example from Femley,< br >
Whose markup was of dubious quality.< br >
The validator complained,< br >
So the author was pained,< br >
To move the error from the markup to the rhyming.</ p >
当更具体的元素更合适时,不应使用 p
元素。
以下示例在技术上是正确的
< section >
<!-- ... -->
< p > Last modified: 2001-04-23</ p >
< p > Author: [email protected]</ p >
</ section >
但是,最好将其标记为
< section >
<!-- ... -->
< footer > Last modified: 2001-04-23</ footer >
< address > Author: [email protected]</ address >
</ section >
或者
< section >
<!-- ... -->
< footer >
< p > Last modified: 2001-04-23</ p >
< address > Author: [email protected]</ address >
</ footer >
</ section >
列表元素(特别是 ol
和 ul
元素)不能是 p
元素的子元素。因此,当一个句子包含一个项目符号列表时,人们可能会想知道它应该如何标记。
例如,这个很棒的句子包含与以下内容相关的项目符号
并在下面进一步讨论。
解决方案是认识到,从 HTML 术语的角度来看,段落不是一个逻辑概念,而是一个结构概念。在上面的出色示例中,实际上有五个 段落,如本规范所定义:列表之前的一个,每个项目符号对应一个,以及列表之后的一个。
因此,上面示例的标记可以是
< p > For instance, this fantastic sentence has bullets relating to</ p >
< ul >
< li > wizards,
< li > faster-than-light travel, and
< li > telepathy,
</ ul >
< p > and is further discussed below.</ p >
希望方便地设置这种由多个“结构”段落组成的“逻辑”段落的作者可以使用 div
元素而不是 p
元素。
因此,例如,上面示例可以变成以下内容
< div > For instance, this fantastic sentence has bullets relating to
< ul >
< li > wizards,
< li > faster-than-light travel, and
< li > telepathy,
</ ul >
and is further discussed below.</ div >
这个示例仍然有五个结构段落,但现在作者可以只设置 div
,而不必分别考虑示例的每个部分。
hr
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
select
元素的子元素。[Exposed =Window ]
interface HTMLHRElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
hr
元素 表示 段落级主题断裂,例如故事中的场景变化,或参考书某一节中过渡到另一个主题;或者,它表示 select
元素的一组选项之间的分隔符。
以下项目手册中的虚构摘录展示了两个使用 hr
元素来分隔节内主题的节。
< section >
< h1 > Communication</ h1 >
< p > There are various methods of communication. This section
covers a few of the important ones used by the project.</ p >
< hr >
< p > Communication stones seem to come in pairs and have mysterious
properties:</ p >
< ul >
< li > They can transfer thoughts in two directions once activated
if used alone.</ li >
< li > If used with another device, they can transfer one's
consciousness to another body.</ li >
< li > If both stones are used with another device, the
consciousnesses switch bodies.</ li >
</ ul >
< hr >
< p > Radios use the electromagnetic spectrum in the meter range and
longer.</ p >
< hr >
< p > Signal flares use the electromagnetic spectrum in the
nanometer range.</ p >
</ section >
< section >
< h1 > Food</ h1 >
< p > All food at the project is rationed:</ p >
< dl >
< dt > Potatoes</ dt >
< dd > Two per day</ dd >
< dt > Soup</ dt >
< dd > One bowl per day</ dd >
</ dl >
< hr >
< p > Cooking is done by the chefs on a set rotation.</ p >
</ section >
以下摘录摘自彼得·F·汉密尔顿的《潘多拉之星》,展示了两个在场景变化之前的段落和紧随其后的段落。场景变化,在印刷书籍中由第二段和第三段之间包含一颗居中星的间隙来表示,这里使用 hr
元素来表示。
< p > Dudley was ninety-two, in his second life, and fast approaching
time for another rejuvenation. Despite his body having the physical
age of a standard fifty-year-old, the prospect of a long degrading
campaign within academia was one he regarded with dread. For a
supposedly advanced civilization, the Intersolar Commonwealth could be
appallingly backward at times, not to mention cruel.</ p >
< p >< i > Maybe it won't be that bad</ i > , he told himself. The lie was
comforting enough to get him through the rest of the night's
shift.</ p >
< hr >
< p > The Carlton AllLander drove Dudley home just after dawn. Like the
astronomer, the vehicle was old and worn, but perfectly capable of
doing its job. It had a cheap diesel engine, common enough on a
semi-frontier world like Gralmond, although its drive array was a
thoroughly modern photoneural processor. With its high suspension and
deep-tread tyres it could plough along the dirt track to the
observatory in all weather and seasons, including the metre-deep snow
of Gralmond's winters.</ p >
pre
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
[Exposed =Window ]
interface HTMLPreElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
pre
元素 表示 一块预格式化文本,其中结构由排版约定而不是元素来表示。
在 HTML 语法 中,紧跟在 pre
元素开始标签后的前导换行符将被移除。
以下是一些可以使用 pre
元素的示例。
鼓励作者考虑预格式化文本在格式丢失时的体验,因为使用语音合成器、盲文显示器等的用户将遇到这种情况。对于 ASCII 艺术等情况,文本描述等替代呈现方式可能会更普遍地为文档读者所接受。
为了表示一段计算机代码,可以使用 pre
元素与 code
元素一起使用;为了表示一段计算机输出,可以使用 pre
元素与 samp
元素一起使用。类似地,kbd
元素可以在 pre
元素内使用,以指示用户需要输入的文本。
此元素 具有涉及双向算法的渲染要求。
在以下代码片段中,展示了一个计算机代码示例。
< p > This is the < code > Panel</ code > constructor:</ p >
< pre >< code > function Panel(element, canClose, closeHandler) {
this.element = element;
this.canClose = canClose;
this.closeHandler = function () { if (closeHandler) closeHandler() };
}</ code ></ pre >
在以下代码片段中,samp
和 kbd
元素混合在 pre
元素的内容中,以显示一个 Zork I 会话。
< pre >< samp > You are in an open field west of a big white house with a boarded
front door.
There is a small mailbox here.
></ samp > < kbd > open mailbox</ kbd >
< samp > Opening the mailbox reveals:
A leaflet.
></ samp ></ pre >
以下展示了一首当代诗,它使用 pre
元素保留其不寻常的格式,这种格式构成了诗歌本身的内在部分。
< pre > maxling
it is with a heart
heavy
that i admit loss of a feline
so loved
a friend lost to the
unknown
(night)
~cdr 11dec07</ pre >
blockquote
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
cite
— 引用来源的链接或有关编辑的更多信息[Exposed =Window ]
interface HTMLQuoteElement : HTMLElement {
[HTMLConstructor ] constructor ();
[CEReactions ] attribute USVString cite ;
};
HTMLQuoteElement
接口也被 q
元素使用。
blockquote
元素 表示 从另一个来源引用的部分。
blockquote
内的内容必须从另一个来源引用,该来源的地址(如果有)可以在 cite
属性中引用。
如果存在 cite
属性,则它必须是 可能被空格包围的有效 URL。为了获得相应的引用链接,必须相对于元素的 节点文档 解析 属性的值。用户代理可能允许用户跟踪此类引用链接,但它们主要用于私人用途(例如,由服务器端脚本收集有关站点引用使用的统计信息),而不是供读者使用。
blockquote
的内容可以被省略,或者可以按照文本语言的惯例添加上下文。
例如,在英语中,这通常使用方括号完成。考虑一个包含以下句子的页面:“简吃了饼干。然后她说她喜欢苹果和鱼。”;可以引用如下
< blockquote >
< p > [Jane] then said she liked [...] fish.</ p >
</ blockquote >
引用的归属(如果有)必须放在 blockquote
元素之外。
例如,这里在引用后的段落中给出了归属
< blockquote >
< p > I contend that we are both atheists. I just believe in one fewer
god than you do. When you understand why you dismiss all the other
possible gods, you will understand why I dismiss yours.</ p >
</ blockquote >
< p > — Stephen Roberts</ p >
以下其他示例展示了其他显示归属的方式。
cite
IDL 属性必须 反映 元素的 cite
内容属性。
这里,blockquote
元素与 figure
元素及其 figcaption
元素一起使用,以清楚地将引用与其归属联系起来(归属不是引用的部分,因此不属于 blockquote
本身)
< figure >
< blockquote >
< p > The truth may be puzzling. It may take some work to grapple with.
It may be counterintuitive. It may contradict deeply held
prejudices. It may not be consonant with what we desperately want to
be true. But our preferences do not determine what's true. We have a
method, and that method helps us to reach not absolute truth, only
asymptotic approaches to the truth — never there, just closer
and closer, always finding vast new oceans of undiscovered
possibilities. Cleverly designed experiments are the key.</ p >
</ blockquote >
< figcaption > Carl Sagan, in "< cite > Wonder and Skepticism</ cite > ", from
the < cite > Skeptical Inquirer</ cite > Volume 19, Issue 1 (January-February
1995)</ figcaption >
</ figure >
下一个示例展示了 cite
与 blockquote
一起使用的示例。
< p > His next piece was the aptly named < cite > Sonnet 130</ cite > :</ p >
< blockquote cite = "https://quotes.example.org/s/sonnet130.html" >
< p > My mistress' eyes are nothing like the sun,< br >
Coral is far more red, than her lips red,< br >
...
这个示例展示了论坛帖子如何使用 blockquote
来显示用户回复的帖子。每个帖子都使用 article
元素来标记线程。
< article >
< h1 >< a href = "https://bacon.example.com/?blog=109431" > Bacon on a crowbar</ a ></ h1 >
< article >
< header >< strong > t3yw</ strong > 12 points 1 hour ago</ header >
< p > I bet a narwhal would love that.</ p >
< footer >< a href = "?pid=29578" > permalink</ a ></ footer >
< article >
< header >< strong > greg</ strong > 8 points 1 hour ago</ header >
< blockquote >< p > I bet a narwhal would love that.</ p ></ blockquote >
< p > Dude narwhals don't eat bacon.</ p >
< footer >< a href = "?pid=29579" > permalink</ a ></ footer >
< article >
< header >< strong > t3yw</ strong > 15 points 1 hour ago</ header >
< blockquote >
< blockquote >< p > I bet a narwhal would love that.</ p ></ blockquote >
< p > Dude narwhals don't eat bacon.</ p >
</ blockquote >
< p > Next thing you'll be saying they don't get capes and wizard
hats either!</ p >
< footer >< a href = "?pid=29580" > permalink</ a ></ footer >
< article >
< article >
< header >< strong > boing</ strong > -5 points 1 hour ago</ header >
< p > narwhals are worse than ceiling cat</ p >
< footer >< a href = "?pid=29581" > permalink</ a ></ footer >
</ article >
</ article >
</ article >
</ article >
< article >
< header >< strong > fred</ strong > 1 points 23 minutes ago</ header >
< blockquote >< p > I bet a narwhal would love that.</ p ></ blockquote >
< p > I bet they'd love to peel a banana too.</ p >
< footer >< a href = "?pid=29582" > permalink</ a ></ footer >
</ article >
</ article >
</ article >
这个示例展示了如何使用 blockquote
来显示简短的片段,说明不必在 blockquote
元素内使用 p
元素。
< p > He began his list of "lessons" with the following:</ p >
< blockquote > One should never assume that his side of
the issue will be recognized, let alone that it will
be conceded to have merits.</ blockquote >
< p > He continued with a number of similar points, ending with:</ p >
< blockquote > Finally, one should be prepared for the threat
of breakdown in negotiations at any given moment and not
be cowed by the possibility.</ blockquote >
< p > We shall now discuss these points...
如何表示对话的示例 在后面的部分中给出;不适合为此目的使用 cite
和 blockquote
元素。
ol
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
li
元素:可感知内容。li
和 脚本支持 元素。reversed
— 反向编号列表start
— 列表的起始值type
— 列表标记的类型[Exposed =Window ]
interface HTMLOListElement : HTMLElement {
[HTMLConstructor ] constructor ();
[CEReactions ] attribute boolean reversed ;
[CEReactions ] attribute long start ;
[CEReactions ] attribute DOMString type ;
// also has obsolete members
};
ol
元素 表示 一个项目列表,其中项目被有意地排序,因此改变顺序将改变文档的含义。
列表的项目是 li
元素,它是 ol
元素的子节点,按 树形顺序排列。
在所有当前引擎中受支持。
reversed
属性是 布尔属性。如果存在,它表示列表是降序列表(...,3,2,1)。如果省略属性,列表是升序列表(1,2,3,...)。
start
属性(如果存在)必须是 有效整数。它用于确定列表的 起始值。
ol
元素具有 起始值,这是一个整数,其确定方式如下
令 parsed 为 将属性值解析为整数的结果。
如果 parsed 不是错误,则返回 parsed。
返回 1。
type
属性可用于指定在列表中使用哪种标记,在某些情况下很重要(例如,因为项目需要通过其编号/字母 引用)。如果指定属性,则属性值必须与下表中某一行第一列中给出的字符 完全相同。type
属性表示该行第二列单元格中给出的状态;如果没有任何单元格匹配,或者省略属性,则属性表示 十进制 状态。
关键字 | 状态 | 描述 | 1-3 和 3999-4001 的示例值 | |||||||
---|---|---|---|---|---|---|---|---|---|---|
1 (U+0031) | decimal | 十进制数字 | 1. | 2. | 3. | ... | 3999. | 4000. | 4001. | ... |
a (U+0061) | lower-alpha | 小写拉丁字母 | a. | b. | c. | ... | ewu. | ewv. | eww. | ... |
A (U+0041) | upper-alpha | 大写拉丁字母 | A. | B. | C. | ... | EWU. | EWV. | EWW. | ... |
i (U+0069) | lower-roman | 小写罗马数字 | i. | ii. | iii. | ... | mmmcmxcix. | i̅v̅. | i̅v̅i. | ... |
I (U+0049) | upper-roman | 大写罗马数字 | I. | II. | III. | ... | MMMCMXCIX. | I̅V̅. | I̅V̅I. | ... |
用户代理应该以与 type
属性状态一致的方式呈现列表中的项目,该属性属于 ol
元素。无论 type
属性如何,小于或等于零的数字始终使用十进制系统。
对于 CSS 用户代理,此属性到 'list-style-type' CSS 属性的映射在 渲染部分 中给出(映射很简单:上面的状态与它们对应的 CSS 值具有相同的名称)。
可以在 CSS 用户代理中重新定义用于实现此属性的默认 CSS 列表样式;这样做会影响列表项的呈现方式。
reversed
和 type
IDL 属性必须 反映 同名内容属性。
start
IDL 属性必须 反映 同名内容属性,其 默认值 为 1。
这意味着 start
IDL 属性并不一定与列表的 起始值 相匹配,在 start
内容属性被省略且 reversed
内容属性被指定的情况下。
以下标记显示了一个顺序很重要的列表,因此 ol
元素是合适的。将此列表与 ul
部分中的等效列表进行比较,以查看使用 ul
元素的相同项目的示例。
< p > I have lived in the following countries (given in the order of when
I first lived there):</ p >
< ol >
< li > Switzerland
< li > United Kingdom
< li > United States
< li > Norway
</ ol >
注意如何更改列表的顺序会改变文档的含义。在下面的示例中,更改前两个项目的相对顺序已经改变了作者的出生地。
< p > I have lived in the following countries (given in the order of when
I first lived there):</ p >
< ol >
< li > United Kingdom
< li > Switzerland
< li > United States
< li > Norway
</ ol >
ul
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
li
元素:可感知内容。li
和 脚本支持 元素。[Exposed =Window ]
interface HTMLUListElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
ul
元素 表示 一个项目列表,其中项目的顺序不重要——也就是说,改变顺序不会实质上改变文档的含义。
以下标记显示了一个顺序不重要的列表,因此 ul
元素是合适的。将此列表与 ol
部分中的等效列表进行比较,以查看使用 ol
元素的相同项目的示例。
< p > I have lived in the following countries:</ p >
< ul >
< li > Norway
< li > Switzerland
< li > United Kingdom
< li > United States
</ ul >
注意,更改列表的顺序不会改变文档的含义。上面的代码段中的项目按字母顺序排列,但在下面的代码段中,它们按 2007 年当前账户余额的大小排列,而不会改变文档的含义。
< p > I have lived in the following countries:</ p >
< ul >
< li > Switzerland
< li > Norway
< li > United Kingdom
< li > United States
</ ul >
menu
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
li
元素:可感知内容。li
和 脚本支持 元素。[Exposed =Window ]
interface HTMLMenuElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
menu
元素 表示 一个工具栏,它包含其内容,形式是一个无序项目列表(由 li
元素表示),每个项目都表示用户可以执行或激活的命令。
menu
元素只是 ul
的语义替代,用于表达命令的无序列表(“工具栏”)。
在此示例中,一个文本编辑应用程序使用 menu
元素提供一系列编辑命令。
< menu >
< li >< button onclick = "copy()" >< img src = "copy.svg" alt = "Copy" ></ button ></ li >
< li >< button onclick = "cut()" >< img src = "cut.svg" alt = "Cut" ></ button ></ li >
< li >< button onclick = "paste()" >< img src = "paste.svg" alt = "Paste" ></ button ></ li >
</ menu >
注意,将其设计成传统的工具栏菜单的样式取决于应用程序。
li
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
ol
元素内。ul
元素内。menu
元素内。li
元素的 结束标签 可以省略,如果 li
元素紧跟在另一个 li
元素之后,或者父元素中没有更多内容。ul
或 menu
元素的子元素:value
— 列表项的序数值[Exposed =Window ]
interface HTMLLIElement : HTMLElement {
[HTMLConstructor ] constructor ();
[CEReactions ] attribute long value ;
// also has obsolete members
};
li
元素 表示 一个列表项。如果其父元素是 ol
、ul
或 menu
元素,那么该元素是父元素列表中的一个项目,如这些元素的定义所示。否则,列表项与任何其他 li
元素没有定义的列表相关关系。
value
属性,如果存在,必须是一个 有效的整数。当 li
的 列表所有者 是一个 ol
元素时,它用于确定列表项的 序数值。
任何 计算值 为 'display' 的 'list-item' 的元素都有一个 列表所有者,它由以下方式确定。
令 ancestor 为元素的父元素。
返回 ancestor 的最接近的包含祖先,该祖先产生 CSS 盒子。
要确定给定 列表所有者 owner 拥有的每个元素的 序数值,请执行以下步骤。
令 i 为 1。
如果 owner 是一个 ol
元素,则令 numbering 为 owner 的 起始值。否则,令 numbering 为 1。
循环:如果 i 大于 owner 拥有的列表项数,则返回;owner 的所有 拥有的列表项 都已分配 序数值。
如果 item 是一个 li
元素,并且它具有 value
属性,那么
令 parsed 为 将属性的值解析为整数的结果。
如果 parsed 不是错误,则将 numbering 设置为 parsed。
item 的 序数值 为 numbering。
如果 owner 是一个 ol
元素,并且 owner 具有 reversed
属性,则将 numbering 减 1;否则,将 numbering 加 1。
将 i 加 1。
转到标记为 循环 的步骤。
value
IDL 属性必须 反映 value
内容属性的值。
元素的 value
IDL 属性不直接对应于其 序数值;它只是 反映 内容属性。例如,给定此列表
< ol >
< li > Item 1
< li value = "3" > Item 3
< li > Item 4
</ ol >
在下面的示例中,列出了前十部电影(按倒序排列)。注意,列表通过使用 figure
元素及其 figcaption
元素来添加标题。
< figure >
< figcaption > The top 10 movies of all time</ figcaption >
< ol >
< li value = "10" >< cite > Josie and the Pussycats</ cite > , 2001</ li >
< li value = "9" >< cite lang = "sh" > Црна мачка, бели мачор</ cite > , 1998</ li >
< li value = "8" >< cite > A Bug's Life</ cite > , 1998</ li >
< li value = "7" >< cite > Toy Story</ cite > , 1995</ li >
< li value = "6" >< cite > Monsters, Inc</ cite > , 2001</ li >
< li value = "5" >< cite > Cars</ cite > , 2006</ li >
< li value = "4" >< cite > Toy Story 2</ cite > , 1999</ li >
< li value = "3" >< cite > Finding Nemo</ cite > , 2003</ li >
< li value = "2" >< cite > The Incredibles</ cite > , 2004</ li >
< li value = "1" >< cite > Ratatouille</ cite > , 2007</ li >
</ ol >
</ figure >
标记也可以按如下方式编写,在 ol
元素上使用 reversed
属性
< figure >
< figcaption > The top 10 movies of all time</ figcaption >
< ol reversed >
< li >< cite > Josie and the Pussycats</ cite > , 2001</ li >
< li >< cite lang = "sh" > Црна мачка, бели мачор</ cite > , 1998</ li >
< li >< cite > A Bug's Life</ cite > , 1998</ li >
< li >< cite > Toy Story</ cite > , 1995</ li >
< li >< cite > Monsters, Inc</ cite > , 2001</ li >
< li >< cite > Cars</ cite > , 2006</ li >
< li >< cite > Toy Story 2</ cite > , 1999</ li >
< li >< cite > Finding Nemo</ cite > , 2003</ li >
< li >< cite > The Incredibles</ cite > , 2004</ li >
< li >< cite > Ratatouille</ cite > , 2007</ li >
</ ol >
</ figure >
虽然在 li
元素内包含标题元素(例如 h1
)符合规范,但它可能不会传达作者想要的语义。标题开始一个新部分,因此列表中的标题隐式地将列表拆分为跨多个部分。
dl
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
dt
元素,后跟一个或多个 dd
元素,可选择地与 脚本支持元素 交织在一起。div
元素,可选择地与 脚本支持元素 交织在一起。[Exposed =Window ]
interface HTMLDListElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
dl
元素 表示 一个包含零个或多个名称-值对组的关联列表(描述列表)。一个名称-值对组由一个或多个名称(dt
元素,可能作为 div
元素子节点的子节点)后跟一个或多个值(dd
元素,可能作为 div
元素子节点的子节点)组成,忽略除 dt
和 dd
元素子节点,以及 dt
和 dd
元素(它们是 div
元素子节点的子节点)以外的任何节点。在一个 dl
元素中,每个名称不应该有多个 dt
元素。
名称-值对组可以是术语和定义、元数据主题和值、问题和答案,或任何其他名称-值对数据组。
组中的值是备选的;组成同一个值的多个段落必须都放在同一个 dd
元素中。
组列表的顺序,以及每个组中名称和值的顺序,可能是重要的。
为了用 微数据 属性或其他 全局属性(适用于整个组或仅用于样式目的)对组进行注释,dl
元素中的每个组都可以用 div
元素进行包装。这不会改变 dl
元素的语义。
dl
元素 dl
的名称-值对组使用以下算法确定。一个名称-值对组有一个名称(一个 dt
元素列表,最初为空)和一个值(一个 dd
元素列表,最初为空)。
令 groups
为一个空的名称-值对组列表。
令 current
为一个新的名称-值对组。
令 seenDd
为假。
令 child
为 dl
的 第一个子节点。
令 grandchild
为 null。
当 child
不为 null 时
如果 child
是一个 div
元素,那么
令 grandchild
为 child
的 第一个子节点。
当 grandchild
不为 null 时
处理 dt
或 dd
,针对 grandchild
。
将 grandchild
设置为 grandchild
的 下一个兄弟节点。
否则,处理 dt
或 dd
,针对 child
。
将 child
设置为 child
的 下一个兄弟节点。
如果 current
不为空,那么将 current
附加到 groups
。
返回 groups
。
要 处理 dt
或 dd
,针对一个节点 node
,意味着要遵循以下步骤
令 groups
、current
和 seenDd
与调用这些步骤的算法中同名变量相同。
如果 node
是一个 dt
元素,那么
如果 seenDd
为真,那么将 current
附加到 groups
,将 current
设置为一个新的名称-值对组,并将 seenDd
设置为假。
将 node
附加到 current
的名称。
否则,如果 node
是一个 dd
元素,那么将 node
附加到 current
的值,并将 seenDd
设置为真。
当一个名称-值对组的名称或值列表为空时,通常是由于意外地将 dd
元素用在 dt
元素的位置,反之亦然。一致性检查器可以发现此类错误,并可能能够建议作者如何正确使用标记。
在以下示例中,一个条目(“作者”)链接到两个值(“John”和“Luke”)。
< dl >
< dt > Authors
< dd > John
< dd > Luke
< dt > Editor
< dd > Frank
</ dl >
在以下示例中,一个定义链接到两个术语。
< dl >
< dt lang = "en-US" > < dfn > color</ dfn > </ dt >
< dt lang = "en-GB" > < dfn > colour</ dfn > </ dt >
< dd > A sensation which (in humans) derives from the ability of
the fine structure of the eye to distinguish three differently
filtered analyses of a view. </ dd >
</ dl >
以下示例说明了如何使用 dl
元素来标记某种元数据。在示例的末尾,一个组有两个元数据标签(“作者”和“编辑”)和两个值(“Robert Rothman”和“Daniel Jackson”)。此示例还在 dt
和 dd
元素组周围使用了 div
元素,以帮助进行样式设置。
< dl >
< div >
< dt > Last modified time </ dt >
< dd > 2004-12-23T23:33Z </ dd >
</ div >
< div >
< dt > Recommended update interval </ dt >
< dd > 60s </ dd >
</ div >
< div >
< dt > Authors </ dt >
< dt > Editors </ dt >
< dd > Robert Rothman </ dd >
< dd > Daniel Jackson </ dd >
</ div >
</ dl >
以下示例显示了 dl
元素用于提供一组指令。这里指令的顺序很重要(在其他示例中,块的顺序并不重要)。
< p > Determine the victory points as follows (use the
first matching case):</ p >
< dl >
< dt > If you have exactly five gold coins </ dt >
< dd > You get five victory points </ dd >
< dt > If you have one or more gold coins, and you have one or more silver coins </ dt >
< dd > You get two victory points </ dd >
< dt > If you have one or more silver coins </ dt >
< dd > You get one victory point </ dd >
< dt > Otherwise </ dt >
< dd > You get no victory points </ dd >
</ dl >
以下片段显示了 dl
元素用作词汇表。请注意,使用了 dfn
来指示正在定义的词语。
< dl >
< dt >< dfn > Apartment</ dfn > , n.</ dt >
< dd > An execution context grouping one or more threads with one or
more COM objects.</ dd >
< dt >< dfn > Flat</ dfn > , n.</ dt >
< dd > A deflated tire.</ dd >
< dt >< dfn > Home</ dfn > , n.</ dt >
< dd > The user's login directory.</ dd >
</ dl >
此示例在 dl
元素中使用 微数据 属性,以及 div
元素,对法国餐厅的冰淇淋甜点进行注释。
< dl >
< div itemscope itemtype = "http://schema.org/Product" >
< dt itemprop = "name" > Café ou Chocolat Liégeois
< dd itemprop = "offers" itemscope itemtype = "http://schema.org/Offer" >
< span itemprop = "price" > 3.50</ span >
< data itemprop = "priceCurrency" value = "EUR" > €</ data >
< dd itemprop = "description" >
2 boules Café ou Chocolat, 1 boule Vanille, sauce café ou chocolat, chantilly
</ div >
< div itemscope itemtype = "http://schema.org/Product" >
< dt itemprop = "name" > Américaine
< dd itemprop = "offers" itemscope itemtype = "http://schema.org/Offer" >
< span itemprop = "price" > 3.50</ span >
< data itemprop = "priceCurrency" value = "EUR" > €</ data >
< dd itemprop = "description" >
1 boule Crème brûlée, 1 boule Vanille, 1 boule Caramel, chantilly
</ div >
</ dl >
如果没有 div
元素,标记将需要使用 itemref
属性来将 dd
元素中的数据与项目关联起来,如下所示。
< dl >
< dt itemscope itemtype = "http://schema.org/Product" itemref = "1-offer 1-description" >
< span itemprop = "name" > Café ou Chocolat Liégeois</ span >
< dd id = "1-offer" itemprop = "offers" itemscope itemtype = "http://schema.org/Offer" >
< span itemprop = "price" > 3.50</ span >
< data itemprop = "priceCurrency" value = "EUR" > €</ data >
< dd id = "1-description" itemprop = "description" >
2 boules Café ou Chocolat, 1 boule Vanille, sauce café ou chocolat, chantilly
< dt itemscope itemtype = "http://schema.org/Product" itemref = "2-offer 2-description" >
< span itemprop = "name" > Américaine</ span >
< dd id = "2-offer" itemprop = "offers" itemscope itemtype = "http://schema.org/Offer" >
< span itemprop = "price" > 3.50</ span >
< data itemprop = "priceCurrency" value = "EUR" > €</ data >
< dd id = "2-description" itemprop = "description" >
1 boule Crème brûlée, 1 boule Vanille, 1 boule Caramel, chantilly
</ dl >
dl
元素不适合用于标记对话。请参阅一些有关如何标记对话的示例。
dt
元素在所有当前引擎中受支持。
dl
元素中的 dd
或 dt
元素之前。dl
元素子节点的 div
元素中的 dd
或 dt
元素之前。header
、footer
、分节内容 或 标题内容 后代。dt
元素紧跟在另一个 dt
元素或 dd
元素之后,则可以省略 dt
元素的 结束标签。HTMLElement
。dt
元素 表示 描述列表(dl
元素)中术语-描述组的术语或名称部分。
dt
元素本身在 dl
元素中使用时,并不表示其内容是正在定义的术语,但这可以使用 dfn
元素来表示。
此示例显示了使用 dt
元素来表示问题和 dd
元素来表示答案的常见问题解答(FAQ)列表。
< article >
< h1 > FAQ</ h1 >
< dl >
< dt > What do we want?</ dt >
< dd > Our data.</ dd >
< dt > When do we want it?</ dt >
< dd > Now.</ dd >
< dt > Where is it?</ dt >
< dd > We are not sure.</ dd >
</ dl >
</ article >
dd
元素在所有当前引擎中受支持。
dl
元素中的 dt
或 dd
元素之后。dl
元素子节点的 div
元素中的 dt
或 dd
元素之后。dd
元素紧跟在另一个 dd
元素或 dt
元素之后,或者父元素中没有更多内容,则可以省略 dd
元素的 结束标签。HTMLElement
。dd
元素 表示 描述列表(dl
元素)中术语-描述组的描述、定义或值部分。
dl
可以用于定义词汇表,例如字典。在以下示例中,每个条目(由带有 dfn
的 dt
给出)都有几个 dd
,显示了定义的各个部分。
< dl >
< dt >< dfn > happiness</ dfn ></ dt >
< dd class = "pronunciation" > /ˈhæpinəs/</ dd >
< dd class = "part-of-speech" >< i >< abbr > n.</ abbr ></ i ></ dd >
< dd > The state of being happy.</ dd >
< dd > Good fortune; success. < q > Oh < b > happiness</ b > ! It worked!</ q ></ dd >
< dt >< dfn > rejoice</ dfn ></ dt >
< dd class = "pronunciation" > /rɪˈdʒɔɪs/</ dd >
< dd >< i class = "part-of-speech" >< abbr > v.intr.</ abbr ></ i > To be delighted oneself.</ dd >
< dd >< i class = "part-of-speech" >< abbr > v.tr.</ abbr ></ i > To cause one to be delighted.</ dd >
</ dl >
figure
元素在所有当前引擎中受支持。
figcaption
元素,后面跟着 流内容。figcaption
元素。HTMLElement
。
元素 表示 一些 流内容,可以选择添加标题,这些内容是自包含的(如完整的句子),通常 被引用 为文档主流程中的单个单元。figure
在这个语境中,“自包含”并不一定意味着独立。例如,段落中的每个句子都是自包含的;作为句子一部分的图片不适合用 figure
标记,但由图片组成的整个句子就很适合。
因此,该元素可用于注释插图、图表、照片、代码清单等。
当 figure
通过其标题(例如,图形编号)从文档的主要内容中引用时,它使该内容能够轻松地从主要内容中移动,例如,移动到页面旁边、专用页面或附录,而不会影响文档的流程。
如果 figure
元素 被引用 为其相对位置,例如,“在上面的照片中”或“如下一张图所示”,则移动图形将破坏页面的含义。鼓励作者考虑使用标签引用图形,而不是使用这种相对引用,以便页面可以轻松地重新设计,而不会影响页面的含义。
元素的第一个 figcaption
元素子节点(如果有)代表 figure
元素内容的标题。如果不存在子 figcaption
元素,则不存在标题。
元素的内容是周围流的一部分。如果页面的目的是显示图形,例如图片分享网站上的照片,则可以使用 figure
figure
和 figcaption
元素显式地为该图形提供标题。对于仅与周围流相关或具有与周围流不同的目的的内容,应使用 aside
元素(并且它本身可以包装一个 figure
)。例如,从 article
中重复内容的引言,在 aside
中比在 figure
中更合适,因为它不是内容的一部分,而是为了吸引读者或突出关键主题而对内容的重复。
此示例显示了 figure
元素用于标记代码清单。
< p > In < a href = "#l4" > listing 4</ a > we see the primary core interface
API declaration.</ p >
< figure id = "l4" >
< figcaption > Listing 4. The primary core interface API declaration.</ figcaption >
< pre >< code > interface PrimaryCore {
boolean verifyDataLine();
undefined sendData(sequence< byte> data);
undefined initSelfDestruct();
}</ code ></ pre >
</ figure >
< p > The API is designed to use UTF-8.</ p >
在这里,我们看到 figure
元素用于标记作为页面主要内容的照片(如在图库中)。
<!DOCTYPE HTML>
< html lang = "en" >
< title > Bubbles at work — My Gallery™</ title >
< figure >
< img src = "bubbles-work.jpeg"
alt = "Bubbles, sitting in his office chair, works on his
latest project intently." >
< figcaption > Bubbles at work</ figcaption >
</ figure >
< nav >< a href = "19414.html" > Prev</ a > — < a href = "19416.html" > Next</ a ></ nav >
在这个示例中,我们看到一个不是图形的图片,以及一个图片和一个视频是图形。第一个图片实际上是示例第二个句子的组成部分,因此它不是一个自包含的单元,因此使用 figure
是不合适的。
< h2 > Malinko's comics</ h2 >
< p > This case centered on some sort of "intellectual property"
infringement related to a comic (see Exhibit A). The suit started
after a trailer ending with these words:
< blockquote >
< img src = "promblem-packed-action.png" alt = "ROUGH COPY! Promblem-Packed Action!" >
</ blockquote >
< p > ...was aired. A lawyer, armed with a Bigger Notebook, launched a
preemptive strike using snowballs. A complete copy of the trailer is
included with Exhibit B.
< figure >
< img src = "ex-a.png" alt = "Two squiggles on a dirty piece of paper." >
< figcaption > Exhibit A. The alleged < cite > rough copy</ cite > comic.</ figcaption >
</ figure >
< figure >
< video src = "ex-b.mov" ></ video >
< figcaption > Exhibit B. The < cite > Rough Copy</ cite > trailer.</ figcaption >
</ figure >
< p > The case was resolved out of court.
这里,一首诗的一部分使用 figure
标记。
< figure >
< p > 'Twas brillig, and the slithy toves< br >
Did gyre and gimble in the wabe;< br >
All mimsy were the borogoves,< br >
And the mome raths outgrabe.</ p >
< figcaption >< cite > Jabberwocky</ cite > (first verse). Lewis Carroll, 1832-98</ figcaption >
</ figure >
在这个示例中,它可能是讨论城堡的更大作品的一部分,嵌套的 figure
元素用于为组中的每个图形提供组标题和单个标题。
< figure >
< figcaption > The castle through the ages: 1423, 1858, and 1999 respectively.</ figcaption >
< figure >
< figcaption > Etching. Anonymous, ca. 1423.</ figcaption >
< img src = "castle1423.jpeg" alt = "The castle has one tower, and a tall wall around it." >
</ figure >
< figure >
< figcaption > Oil-based paint on canvas. Maria Towle, 1858.</ figcaption >
< img src = "castle1858.jpeg" alt = "The castle now has two towers and two walls." >
</ figure >
< figure >
< figcaption > Film photograph. Peter Jankle, 1999.</ figcaption >
< img src = "castle1999.jpeg" alt = "The castle lies in ruins, the original tower all that remains in one piece." >
</ figure >
</ figure >
前面的示例也可以更简洁地写成如下(使用 title
属性代替嵌套的 figure
/figcaption
对)。
< figure >
< img src = "castle1423.jpeg" title = "Etching. Anonymous, ca. 1423."
alt = "The castle has one tower, and a tall wall around it." >
< img src = "castle1858.jpeg" title = "Oil-based paint on canvas. Maria Towle, 1858."
alt = "The castle now has two towers and two walls." >
< img src = "castle1999.jpeg" title = "Film photograph. Peter Jankle, 1999."
alt = "The castle lies in ruins, the original tower all that remains in one piece." >
< figcaption > The castle through the ages: 1423, 1858, and 1999 respectively.</ figcaption >
</ figure >
图形有时 被引用 只是隐式地从内容中引用。
< article >
< h1 > Fiscal negotiations stumble in Congress as deadline nears</ h1 >
< figure >
< img src = "obama-reid.jpeg" alt = "Obama and Reid sit together smiling in the Oval Office." >
< figcaption > Barack Obama and Harry Reid. White House press photograph.</ figcaption >
</ figure >
< p > Negotiations in Congress to end the fiscal impasse sputtered on Tuesday, leaving both chambers
grasping for a way to reopen the government and raise the country's borrowing authority with a
Thursday deadline drawing near.</ p >
...
</ article >
figcaption
元素在所有当前引擎中受支持。
figure
元素的第一个或最后一个子节点。HTMLElement
。
元素 表示 figcaption
figcaption
元素的父级 figure
元素(如果有)其余内容的标题或图例。
该元素可以包含有关来源的附加信息。
< figcaption >
< p > A duck.</ p >
< p >< small > Photograph courtesy of 🌟 News.</ small ></ p >
</ figcaption >
< figcaption >
< p > Average rent for 3-room apartments, excluding non-profit apartments</ p >
< p > Zürich’s Statistics Office — < time datetime = 2017-11-14 > 14 November 2017</ time ></ p >
</ figcaption >
main
元素在所有当前引擎中受支持。
main
元素。HTMLElement
。文档中不能有多个 main
元素,这些元素没有指定 属性。
一个 层次结构正确的 main
元素 是指其祖先元素仅限于 html
、body
、div
、form
(没有 可访问名称)和 自主自定义元素。每个 main
元素必须是一个 层次结构正确的 main
元素。
在这个示例中,作者使用了一种展示方式,其中页面的每个组件都渲染在一个框中。为了包装页面的主要内容(而不是页眉、页脚、导航栏和侧边栏),使用了 main
元素。
<!DOCTYPE html>
< html lang = "en" >
< title > RPG System 17</ title >
< style >
header , nav , aside , main , footer {
margin : 0.5 em ; border : thin solid ; padding : 0.5 em ;
background : #EFF ; color : black ; box-shadow : 0 0 0.25 em #033 ;
}
h1 , h2 , p { margin : 0 ; }
nav , main { float : left ; }
aside { float : right ; }
footer { clear : both ; }
</ style >
< header >
< h1 > System Eighteen</ h1 >
</ header >
< nav >
< a href = "../16/" > ← System 17</ a >
< a href = "../18/" > RPXIX →</ a >
</ nav >
< aside >
< p > This system has no HP mechanic, so there's no healing.
</ aside >
< main >
< h2 > Character creation</ h2 >
< p > Attributes (magic, strength, agility) are purchased at the cost of one point per level.</ p >
< h2 > Rolls</ h2 >
< p > Each encounter, roll the dice for all your skills. If you roll more than the opponent, you win.</ p >
</ main >
< footer >
< p > Copyright © 2013
</ footer >
</ html >
在以下示例中,使用了多个 main
元素,并使用脚本使导航在没有服务器往返的情况下工作,并为那些不是当前的元素设置 属性。
<!doctype html>
< html lang = en-CA >
< meta charset = utf-8 >
< title > … </ title >
< link rel = stylesheet href = spa.css >
< script src = spa.js async ></ script >
< nav >
< a href = / > Home</ a >
< a href = /about > About</ a >
< a href = /contact > Contact</ a >
</ nav >
< main >
< h1 > Home</ h1 >
…
</ main >
< main hidden >
< h1 > About</ h1 >
…
</ main >
< main hidden >
< h1 > Contact</ h1 >
…
</ main >
< footer > Made with ❤️ by < a href = https://example.com/ > Example 👻</ a > .</ footer >
search
元素当前引擎不支持。
HTMLElement
。
元素 表示 文档或应用程序的一部分,其中包含一组表单控件或与执行搜索或过滤操作相关的其他内容。这可能是对网站或应用程序的搜索;在当前网页上搜索或过滤搜索结果的方式;或全局或互联网范围的搜索功能。search
不建议仅仅为了展示搜索结果而使用 search
元素,尽管作为“快速搜索”结果的一部分的建议和链接可以作为搜索功能的一部分包含在内。相反,搜索结果的返回网页将被预期呈现为该网页的主要内容的一部分。
在以下示例中,作者在网页的 header
中包含了一个搜索表单。
< header >
< h1 >< a href = "/" > My fancy blog</ a ></ h1 >
...
< search >
< form action = "search.php" >
< label for = "query" > Find an article</ label >
< input id = "query" name = "q" type = "search" >
< button type = "submit" > Go!</ button >
</ form >
</ search >
</ header >
在这个示例中,作者完全使用 JavaScript 实现了自己的 Web 应用程序的搜索功能。没有使用 form
元素来执行服务器端提交,但包含的 search
元素在语义上标识了后代内容的目的是代表搜索功能。
< search >
< label >
Find and filter your query
< input type = "search" id = "query" >
</ label >
< label >
< input type = "checkbox" id = "exact-only" >
Exact matches only
</ label >
< section >
< h3 > Results found:</ h3 >
< ul id = "results" >
< li >
< p >< a href = "services/consulting" > Consulting services</ a ></ p >
< p >
Find out how can we help you improve your business with our integrated consultants, Bob and Bob.
</ p >
</ li >
...
</ ul >
<!--
when a query returns or filters out all results
render the no results message here
-->
< output id = "no-results" ></ output >
</ section >
</ search >
在以下示例中,页面有两个搜索功能。第一个位于网页的 头部
,作为搜索网站内容的全局机制。其用途由其指定的 标题
属性表示。第二个作为页面主要内容的一部分,表示搜索和过滤当前页面内容的机制。它包含一个标题来指示其用途。
< body >
< header >
...
< search title = "Website" >
...
</ search >
</ header >
< main >
< h1 > Hotels near your location</ h1 >
< search >
< h2 > Filter results</ h2 >
...
</ search >
< article >
<!-- search result content -->
</ article >
</ main >
</ body >
div
元素在所有当前引擎中受支持。
在所有当前引擎中受支持。
dl
元素的子元素。dl
元素的子元素:一个或多个 dt
元素,后跟一个或多个 dd
元素,可以选择性地与 脚本支持元素 交织在一起。dl
元素的子元素:流内容。[Exposed =Window ]
interface HTMLDivElement : HTMLElement {
[HTMLConstructor ] constructor ();
// also has obsolete members
};
div
元素本身没有任何特殊含义。它 表示 其子元素。它可以与 类
,lang
和 title
属性一起使用,以标记一组连续元素的共同语义。它也可以在 dl
元素中使用,包装 dt
和 dd
元素组。
强烈建议作者将 div
元素视为最后的手段,当没有其他元素适合时使用。使用更合适的元素而不是 div
元素,可以提高读者的可访问性,并简化作者的维护工作。
例如,博客文章将使用 article
进行标记,章节使用 section
,页面导航辅助使用 nav
,一组表单控件使用 fieldset
。
另一方面,div
元素可以用于样式目的或包装一个部分中需要以类似方式进行注释的多个段落。在以下示例中,我们看到 div
元素用作一次设置两个段落语言的方式,而不是分别在两个段落元素上设置语言。
< article lang = "en-US" >
< h1 > My use of language and my cats</ h1 >
< p > My cat's behavior hasn't changed much since her absence, except
that she plays her new physique to the neighbors regularly, in an
attempt to get pets.</ p >
< div lang = "en-GB" >
< p > My other cat, coloured black and white, is a sweetie. He followed
us to the pool today, walking down the pavement with us. Yesterday
he apparently visited our neighbours. I wonder if he recognises that
their flat is a mirror image of ours.</ p >
< p > Hm, I just noticed that in the last paragraph I used British
English. But I'm supposed to write in American English. So I
shouldn't say "pavement" or "flat" or "colour"...</ p >
</ div >
< p > I should say "sidewalk" and "apartment" and "color"!</ p >
</ article >