为什么HTML5建议把代码元素放在pre?

前端之家收集整理的这篇文章主要介绍了为什么HTML5建议把代码元素放在pre?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
The HTML5 documentation recommends代码元素放在pre元素内部,但我不明白这是更好还是更多的语义,而不仅仅是使用代码元素和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推荐的CSS解决方案?

解决方法

< code>仅表示“计算机代码的片段”。它最初被认为是简单的代码片段,如i或< code&gt ;. < pre> “表示预格式化文本的块,其中结构由印刷约定而不是通过元素表示”。它的原始目的就是这样:提供一种文本,其方式与作者给出的方式相同。
+----------------------------------+
|                                  |
| 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.

猜你在找的HTML5相关文章