段落内的列表或更长的代码片段

在编写算法时,在段落内甚至在句子中间写一些(伪)代码通常是非常方便的。 为了在视觉上支持更复杂句子的结构,列表也很方便。

显然,一个句子不能分成不同的段落。 但在我们的情况下,它必须归因于HTML嵌套规则。

段落是p元素 ,它不能包含块级元素 。 不幸的是,对于我们的情况, pre和列表是块级别的。

如果我不遵守规范并在p包含preol / ul / dl ,则p会在我知道的任何解析器的元素的开始标记之前自动关闭。 (这是由于p上的SGML OMITTAG功能设置所致)。也许这和向后兼容性是设计决定不允许pre和list在p

有什么办法,如何将列表和更长的代码片段包含到段落中?


我可以重新编写我的句子和段落,不需要片段和列表,但它需要很多思考和关注,并且可以使我的文本更难以阅读和理解。 这对我来说不是一个解决方案

我可以使用带有whitespace: pre code whitespace: predisplay: block代码片段较长, code whitespace: pre-wrap较短的代码片段。 这在语义上是正确的吗?

我可以将句子中的列表看作仅仅是可视化的糖,而没有任何语义。 然后我会用span s来display: list-item ,使它们看起来像列表。 从语义的角度来看,这是否正确? 语义结构的牺牲是必要的吗?


这个问题适用于HTML和XHTML,因为嵌套元素的规则是相同的。 通过HTML我的意思是HTML 4.01严格,通过XHTML我的意思是XHTML 1.0严格。 这个问题在HTML5中是以某种方式解决的?

为了明确起见,我想要一个符合标准的语法和语义正确的解决方案 ,而不是任何类型的非标准黑客。 具体而言, p转换为div不是的解决方案


相关问题

  • ul元素永远不可能是p元素的子元素
  • <code> vs <pre> vs <samp>用于内联和块代码片段
  • <pre>标记使浏览器关闭段落
  • 我可以在Tumblr的<p>标签内有一个<pre>标签吗?
  • ol / ul应该放在<p>还是外面?
  • 段落元素中的无序列表
  • 巢在html中的段落中列出
  • 也可以看看

  • CSS设计:驯服列表@列表分开

  • 就HTML而言,单个<p>元素表示的所有内容都是恰巧像段落文本一样流动的短语内容块。 尽管它被称为一个段落,但它不必严格代表一段书面文字。

    为了引入一个列表或一个块级的代码片段,你不会以任何方式破坏语义,即使是将一个段落,甚至是中间句子分成两个<p>元素。 这是完全可以接受的。

    事实上,HTML5同意了(而HTML 4除了“ P元素代表段落”之外绝对没有什么可说的):

    列表元素(特别是olul元素)不能是p元素的子元素。 因此,当一个句子包含一个项目符号列表时,可能会想知道它应该如何标记。

    例如,这个梦幻般的句子有与之相关的子弹

  • 向导,
  • 比光线旅行更快,而且
  • 心灵感应,
  • 并在下面进一步讨论。

    解决方案是要意识到,用HTML来说,段落不是一个合乎逻辑的概念,而是一个结构化的概念。 在上面这个神奇的例子中,实际上有五个段落定义在这个规范中:一个在列表之前,一个在每个项目符号之后,一个在列表之后。

    上述例子的标记因此可以是:

    <p>For instance, this fantastic sentence has bullets relating to</p>
    <ul>
     <li>wizards,
     <li>faster-than-light travel, and
     <li>telepathy,
    </ul>
    <p>and is further discussed below.</p>
    

    如果您查看文档的来源,您可以看到,即使引用的示例包含一个包含文本的<p>元素“因此上述示例的标记可能是:”,紧接着包含<pre>元素的<pre>元素示例标记。

    如果你仍然担心,HTML5提供了一个替代方案,但基本上涉及到使用<div>而不是单独的<p>元素,正如你所说的,它不是一个解决方案。

    最后,假设我提到的所有内容都适用于HTML 4和XHTML 1,这是安全的。 对于它的价值,这个概念在XHTML 2中进行了探索,它允许<p>元素包含任何其他类型的内容。

    链接地址: http://www.djcxy.com/p/88767.html

    上一篇: List or longer code snippet inside paragraph

    下一篇: Are XHTML self closing elements still valid in HTML5?