gpt4 book ai didi

html - 替换 DOA 标签

转载 作者:太空狗 更新时间:2023-10-29 13:50:27 25 4
gpt4 key购买 nike

DOA(或更恰本地说,Dead Before Arrival)XHTML2 工作标准表示支持 the <di> tag .

[...] The term and its definition can be grouped within a di element to help clarify the relationship between a term and its definition(s).

澄清一下,这个标签将用于分组 <dt><dd>标签一起在 <dl> 下:

<dl>
<di>
<dt>defenestrate</dt>
<dd>throw through or out of the window; "XHTML2 was defenestrated"</dd>
<dd>what I will do if web standards keep going they way they are</dd>
</di>
</dl>

无论如何,自<di>超出了窗口 (heh),我想知道目前支持的标记模式(如果有的话)在语义和结构上是等价的吗?我基本上已经接受了 <dl>不足以满足我的要求(就审美要求而言),所以我开始寻找其他解决方案。

我对 <di> 的意图主要是样式 Hook 1,因为我正在使用定义列表并打算将术语/定义分组设置为单个项目。

为了方便起见,我将使用 aria-*role属性来帮助定义关系,但我希望存在一些普遍接受的结构来模拟 <di> ,我根本没遇到过。

例如,我正在考虑如下内容:

<ul>
<li>
<dfn id="term-1">term</dfn>
<p aria-labelledby="term-1">definition for term 1</p>
<p aria-labelledby="term-1">another definition for term 1</p>
</li>
<li>
<dfn id="term-2">term</dfn>
<p aria-labelledby="term-2">definition for term 2</p>
<p aria-labelledby="term-2">another definition for term 2</p>
</li>
</ul>

<子>1。据我了解,这是将其排除在 HTML5 之外的一个经常被引用的原因(它只是一个样式 Hook )。坦率地说,我认为这是公牛,因为它是一种完全合理的方式来为美学 解析目的对术语和定义进行分组。但谁在乎,对吧?未加引号的属性和不完整的标签更为重要。 </sarcasm>

最佳答案

HTML5 CR 在 dl element 中定义了一个分组,所以例如一个 dd 元素后跟一个或多个 dd 元素构成一个组,下一个 dd 开始一个新组等。从这个意义上说, di 元素在结构上是冗余的。另一方面,dl 元素实际上没有语义(除了在结构上是某种东西),并且没有已知的软件以任何特定方式处理它,除了默认渲染问题。

如果您希望将这样的组设置为一个单元,那么根据规范和草稿,您多半是运气不好。没有考虑添加任何类似 di 的提议。您可以提交提案,将 tbodyoptgroup 作为先例(即作为特定元素中的特殊用途分组元素),但这将是一个漫长的过程。

一个简短的方法是使用divdl 中进行分组。当然它是“无效的”,但这只是一个正式的立场,浏览器并不关心。他们似乎很好地消化了这一点:

<dl>
<div>
<dt>defenestrate</dt>
<dd>throw through or out of the window; "XHTML2 was defenestrated"</dd>
<dd>what I will do if web standards keep going they way they are</dd>
</div>
<div>
<dt>pragmatic HTML</dt>
<dd>using markup according to how things actually work in browsers
and other relevant software</dd>
</div>
</dl>

浏览器对此进行解析,以便 div 元素是 dl 元素的子元素,而 dtdd元素仍然对默认格式具有正常效果。

现在您可以为单位设置样式,例如

<style>
dl > div { border: solid red 1px; margin-bottom: 0.6em; }
</style>

你可能会因此而受到抨击。一种更安全、更乏味的方法是让每个单元成为一个单独的 dl 元素(如果需要处理,将 dl 元素包装在 div 容器中将它们全部作为一个元素)。

关于html - 替换 DOA <di> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com