今天我玩了一点 Tumblr。我尝试将预先格式化的文本添加到描述段落块中,如下所示:
{block:Description}
<p id="description">{Description}</p>
{/block:Description}
但是,元素是在元素<pre>
之后呈现的,<p>
而不是在我的意图中。
我在这里做错了什么还是一个错误?
您不能在 HTML 中嵌套块级元素,例如<pre>
, <p>
,因此 Tumblr 的行为正确。在插入预先格式化的文本之前,您应该关闭您的段落。
如果您想要内联代码样式的文本,请尝试使用<code>
标记。然后,如果需要,您可以使用 CSS 对其进行补充。
<p>I like to use the <code>code</code> tag in my HTML files.</p>
code
{
padding: 2px 4px;
color: #000000;
background-color: #eeeeee;
border-radius: 3px;
}
此外,我刚刚意识到我在将代码粘贴到 tumblr 内部<pre>
和<code>
标签中时遇到了类似的问题,因为您将代码包装在这些标签中并不能阻止您必须使用<
而>
不是插入符号来逃避插入符号。
HTML5 术语是:
p
的“内容模型”是“短语内容”:“ https://html.spec.whatwg.org/multipage/grouping-content.html#the-p-elementpre
的“类别”是:“流动内容”和“可触知的内容”:https ://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element由于pre
的类别不包括“短语内容”,pre
因此不能放在 中p
。
不过,也许可以pre
使用 CSS 样式进行模拟:How to change a span to look like a pre with CSS? 但我不确定它是否允许在p
.