<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推荐的CSS解决方案?
解决方法
+----------------------------------+ | | | WARNING! PREFORMATED TEXT AHEAD! | =o= | __; ~^ +----------------TT------------° || _____________ _____________________ || | TO GRANDMA > | TOTALLY NOT A TRAP > oÖo || |°°°°°°°°°°°° °°°°°°°°°°°°°°°°°°°°° | ö || | | .mm,~"""~"""~"""~"""~"""~"""~~"""~"""~"""~"""~"""~"""~"""~"""~"""~""..MWMWc...~"""~""
你不需要彼此使用每个。 < pre>有自己的角色,如< code>有它自己的。然而,< pre>是用信号通知给定片段中的白色空间是重要的一种方式,其中< code>不见了。
但是,回到你的问题:注意确切的措辞:
The following example shows how a block of code could be marked up using the pre and code elements.
06001
A class is used in that example to indicate the language used.
它说可以,不应该。你可以自由地这样做你想要的。这不是W3C以任何方式推荐,但是,我个人建议您使用< pre>< code> ….
进一步说明
每当白色空间是你的代码和你的代码的结构的一部分,你应该声明这个结构应该保留。由于代码中的结构由印刷约定(制表符,换行符,空格)给出,我个人建议您使用< pre>< code>,即使它可以说更多的代码和DOM中的另一个节点。但是,每当丢失空白空间将会使你的代码不完美,这是必要的。
除此之外,你可以很容易地区分内联代码和代码块,而不检查element.className,一些JS语法高亮工作很好地与< pre>< code> …和剥离< code>自动。
此外,如果您使用< code>的一般规则with white-space:pre,您不能将其用于没有其他类的内联片段。如果您要创建类,则与< pre>< code>相比,您没有赢得任何成就。
参考文献
> W3C:HTML5: 4.6.11 The code element(WD-html5-20120329)
The
code
element 07001 a fragment of computer code. This could be an XML element name,a filename,a computer program,or any other string that a computer would recognize.
> W3C:HTML5: 4.5.3 The pre element(WD-html5-20120329)
The
pre
element 07001 a block of preformatted text,in which structure is represented by typographic conventions rather than by elements.