HTML5文档建议将code
元素放在pre
元素内,但我不明白这种做法相对于仅使用code
元素和CSS有何更好或更语义化的优势。按照他们自己的示例:
<pre><code class="language-pascal">var i: Integer;
begin
i := 1;
end.</code></pre>
也可以这样写(假设浏览器默认为pre
):
<style>
code {
display: block;
white-space: pre;
}
</style>
…
<code class="language-pascal">var i: Integer;
begin
i := 1;
end.</code>
即使 pre
元素可以区分代码块和内联代码字符串,但我并不认为它比在类中指定 code
块更语义化。
推荐使用 pre
的具体原因是什么?难道没有使用 CSS 解决方案的可能吗?
<code>
虽然应用了等宽字体,但是不像<pre>
那样保留换行。比如将格式化的代码应用于<code>
标签将破坏其格式。这在<code>
标签最初的定义中有些遗漏,现在我们必须保持向后兼容性。 - Marc Bpre
和code
元素来标记一段代码块。” - gen_Ericcode
对于内联代码字符串也很有用。但这并不意味着pre
比 CSS 更适合块格式化。 - kojirowhite-space: pre;
? - xec