嵌套在html中的段落中列出

Zee*_*Zee 10 html markup xhtml-1.0-strict

似乎(严格)html不允许在a中嵌套任何非内联元素<p>,但是我应该如何呈现包含列表的段落(通常在自然文本中出现的内容).我看到三个答案似乎都不满意:

  • 列表不应该在段落内发生.(我不打算进行文化辩论,但我当然希望html不会成为决定写作风格的地方.)
  • 将文本分为段落,然后是列表,然后是带有后置文本的第二段.这很糟糕,因为现在我<p>是块部分段落,并且对于一个标记正试图以更语义方向移动,似乎不好.
  • 假段落使用一些<div class="mypara">- 这看起来像是一种绕过整个事情并放弃使用带有适当语义的文本标记的坏方法.

还有其他方法可以做到这一点在语义上是正确和有效的吗?

Owe*_* S. 9

HTML 5中的段落,从最新的工作草案开始,被定义为仅包含措辞元素的流元素.列表也被定义为流元素,并且不能包含在段落中.无论你认为段落的定义是什么,这都是HTML中术语的正式定义,我认为它不太可能改变.

除了你提到的两个,你可以考虑两种可能性:

  • 考虑达到比第一个更宽广到达流动元件是否适用,如section,nav,header,footer,或article.
  • 使用混合方法:使用您选择的p – ol – p序列来包装序列,该序列div将常用格式应用于集合.

到目前为止div,HTML 5规范明确建议它应该是一个"最后的手段"元素,因为它不像其他HTML元素那样具有语义含义,并且在替代用户代理中可能不那么用户友好. .根据这个建议,如果语义对你很重要,我不会以身体文本div为代价p.但是,它可以用于确保多个段落的使用不会在视觉上过于波动.