2

我可以在定义列表中包含标题元素吗?

例子:

<dl>
 <h4> heading </h4>

 <dt> title </dt> <dd> content </dd>
 <dt> title </dt> <dd> content </dd>
 <dt> title </dt> <dd> content </dd>

 <h4> heading </h4>

 <dt> title </dt> <dd> content </dd>
 <dt> title </dt> <dd> content </dd>
 <dt> title </dt> <dd> content </dd>

</dl>

它似乎在我的浏览器中按预期工作:)

4

3 回答 3

6

不; 在 a 中可能有效的唯一dl元素是dddt

它可能看起来有效的原因是浏览器的错误处理,这是不可预测的,而且据我所知,大部分没有记录,因此应该依赖。

有趣的是,正如 Šime Vidas 在评论中所指出的(如下),Firefox、Chrome、Safari、Opera 和 Internet Explorer 7 和 9 并没有更正结构并允许标题元素保留在dl. 这让我觉得很奇怪。

但是,尽管可以容忍,但它仍然无效。当然,您是否选择尊重该有效性是可选的。

参考:

于 2012-07-25T21:43:09.287 回答
1

FWIW,您可以在直接输入模式下使用w3c 标记验证器来检查代码片段。

浏览器非常容忍不良 html,并且不符合规则,即使它现在可以工作,可能意味着您的页面/布局会随着未来的浏览器更新而中断。

我添加了所需的其他元素来验证您的代码,如下所述。确切地抱怨大卫托马斯所说的。

 <!DOCTYPE html>
    <html>
        <head>
            <title>asdf</title>
        </head>
        <body>
            <dl>
                 <h4> heading </h4>

                 <dt> title </dt> <dd> content </dd>
                 <dt> title </dt> <dd> content </dd>
                 <dt> title </dt> <dd> content </dd>

                 <h4> heading </h4>

                 <dt> title </dt> <dd> content </dd>
                 <dt> title </dt> <dd> content </dd>
                 <dt> title </dt> <dd> content </dd>
            </dl>
        </body>
    </html>

于 2012-07-25T21:48:02.393 回答
0

您可以添加 2 个 dt 标签,其中一个带有一个类

dt.heading {
  font-weight: bold
}
<dl>
  <dt class="heading">Heading</dt>
  <dt>milk</dt>
  <dd>white discharge</dd>
</dl>

让你有多个一个接一个,因为多个术语可以有相似的定义,如果不是相同的定义。同样,您可以有多个,因为一个术语可以有几个不同的含义。即使你正在通过 CSS 改变它的外观,这也不会是一个真正的标题,并且会被搜索引擎等跳过……也许有一个带有 seo 内容的隐藏 h1 标签

于 2014-05-19T03:01:18.957 回答