H1,H2等在DL内有效吗​​?

时间:2012-07-25 21:41:12

标签: html html-lists html-heading

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

示例:

<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>

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

3 个答案:

答案 0 :(得分:6)

没有;在dl中可能有效的元素为dddt

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

虽然有趣的是,正如ŠimeVidas在评论(下文)中指出的那样,Firefox,Chrome,Safari,Opera和Internet Explorers 7和9不会更正结构并允许标题元素保留在dl内。这让我很奇怪。

但是,虽然这是容忍的,但仍然无效。当然,您是否选择尊重该有效性是可选的。

参考文献:

答案 1 :(得分:1)

FWIW,您可以在直接输入模式下使用w3c markup validator来检查代码段。

浏览器非常容忍糟糕的HTML,并且不符合规则,即使它现在有效,也可能意味着您的页面/布局会因未来的浏览器更新而中断。

我添加了所需的其他元素以使您的代码验证,如下所述。抱怨David Thomas所说的确切内容。

 <!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>

答案 2 :(得分:0)

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

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

允许您拥有多个,因为多个术语可以具有相似但不相同的定义。同样聪明的你可以有多个,因为一个术语可以有几个不同的含义。 即使你通过CSS改变它看起来的方式这不会是一个真正的标题,并且会被搜索引擎等跳过...也许有一个带有seo内容的隐藏的h1标签