有没有更好的方法来语义代码起来XHTML 1.0过渡的常见问题?(Is there a better

2019-10-23 10:11发布

对于常见问题,它使用XHTML 1.0下面的代码段,不会在成功验证W3C验证 。

我插入Q&A进入一个定义列表,以保持问题和语义回答关系。 问题是,这些问题可以是多个段落。 和<dt>标签,至少在XHTML 1.0,仅允许内联元素。 所以我不能把一个<p>标签中有没有在W3C验证抛出一个错误。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<dl>
    <dt>
        <p>This is a very long question.</p>
        <p>It has multiple paragraphs.</p>
    </dt>

    <dd>
        <p>This is the answer</p>
    </dd>
</dl>
</body>
</html>

有没有这个编码使用XHMTL 1.0过渡的语义更好的办法?

作为参考,最新的类似线程我能找到的话题是,这是什么是semanticly构建一个常见问题的最佳方式? 。 线程是有益的,但它并不包括在问题多个段落。

Answer 1:

使用dl元素似乎并不合适。

XHTML 1.0 使用的元素定义从HTML 4.01,其中该dl元件被定义为一个“定义列表”。 Q&作为的名单可能不是一个定义列表(除非,也许,要定义的术语只是表述为问题,例如“什么是foo的定义是什么?”)。

HTML5重新定义了dl元素 :它不再是一个定义列表,而是一个“关联列表”或“说明清单”。 这可能是适当的,以使用它的Q&As和所述dt元件现在还可以含有多数的流动内容元素(其包括p )。 所以,如果你想使用(X)HTML 5,这可能是合适的。 (该例如dt甚至显示了一个常见问题。)

可能的选择,这取决于实际的内容和上下文:

  • 只要使用p和依靠文本语义,即“?” 明确指出,这是一个问题。 你也可以用它们的前缀“问题:”和“答案:”(例如,在b )。
  • 使用标题( h1 - h6每个Q&A)。 当他们既不可以包含p元素,你可能需要使用类似“问题1”为标题的内容,并再次依靠文本。


文章来源: Is there a better way to semantically code up an FAQ in XHTML 1.0 Transitional?