是否有必要在<p>标签内包装<strong>,<em>,<b>,<i>,如果内容不是段落?</p> </i> </b> </em> </STRONG>

时间:2010-02-10 13:31:31

标签: css xhtml accessibility semantic-markup screen-readers

例如:

这没关系

<div>
<p>some <strong>long</strong> text</p>
<strong>- end -</strong>
<p>some long text</p>
</div>

或者这在语义上更正确吗?

<div>
<p>some <strong>long</strong> text</p>
<p><strong>- end -</strong></p>
<p>some long text</p>
</div>

6 个答案:

答案 0 :(得分:5)

如果它不是段落,则不应将其标记为段落。 (HTML规范解释了how to read the DTD以确定文档中给定点允许的元素。)

  

<p><strong>- end -</strong></p>

...但是,我不知道这是什么。你应该遵循正常的语法规则。

答案 1 :(得分:3)

学术答案:两者都兼容XHTML。 实际答案:浏览器不会给出任何关于它的信息

答案 2 :(得分:1)

如果内容不是段落,那么将其标记为不是语义。

如果您的结束标记被设计为可读,那么它是否实际上是一个段落是有争议的。如果它不是为了阅读而设计的,则不应该使用<strong>这样的面向阅读的标签进行标记,而应该使用应用样式表的span或div,以使字体粗体变粗。

答案 3 :(得分:1)

The spec并没有说你必须这样做。 The validator很高兴您将它放在其他块级容器中。

答案 4 :(得分:1)

我觉得“ - 结束 - ”就是<hr/>p:after{content:"-end-"}

的情况

答案 5 :(得分:0)

正如您所提到的,较低的语义更正确,因为<strong>标记不是块级元素,这意味着您需要将其包装在<p>中。否则,我确定您在尝试验证HTML时会遇到问题。