嵌套列表在html中的段落

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

>列表不应在段落内发生. (我不会进行文化辩论,但我希望html不会成为写作风格的地方.)
>将文本分成一个段落,然后一个列表,然后一个第二个段落与后面的文本.这看起来很糟糕,因为现在我有< p>块是段落的一部分,对于尝试以更语义的方向移动的标记似乎不好.
>使用一些< div class =“mypara”>的假段落 – 它看起来像一个坏的方式来绕过整个事情,放弃使用正确的文本语法的标记.

有没有其他方法来做这个语义正确和有效?

解决方法

HTML 5中的最新工作草案中的段落被定义为只能包含短语内容的流程元素.列表也定义为流元素,不能在段落中括起来.无论您认为段落的定义如何,这是HTML中该术语的正式定义,我认为这不可能改变.

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

>考虑到适用范围更广泛的流动元素(如段落,导航,页眉,页脚或文章).
>使用混合方法:将p-ol-p序列与您选择的适用于该集合的通用格式的div进行包装.

就div而言,HTML 5规范清楚地表明,它应该是一个“最后的手段”元素,因为它不以其他HTML元素的方式具有语义意义,并​​且可能不如用户友好的替代用户代理商.通过这个建议,如果语义对你很重要,我不会以p为代价来使用div来代替正文.但是,确保使用多个段落不会太视觉上波动,这可能是有用的.

相关文章

操作步骤 1、进入elasticsearch的plugin,进入ik。进入config。 2、在config下面建立以.dic为后缀的字典...
lengend data数据中若存在&#39;&#39;,则表示换行,用&#39;&#39;切割。
代码实现 option = { backgroundColor: &amp;#39;#080b30&amp;#39;, tooltip: { trigger: &...
问题原因 原因在于直接在js中取的变量并复制给var变量。 于是就变成这样。 解决办法 var data = &#...
前言 最近做了一个调查问卷导出的功能,需求是将维护的题目,答案,导出成word,参考了几种方案之后,选...
对于很多人来说,用字符编码都是熟能生巧,而不清楚为什么是那样的字符编码,所以我在这列了一个表,翻...