为什么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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码
HTML5使用DOM进行自定义控制
使用HTML5 Canvas绘制阴影效果的方法
使用PHP和HTML5 FormData实现无刷新文件上传
如何解决HTML5 虚拟键盘出现挡住输入框的问题
HTML5中div和section以及article的区别分析
html5和CSS 实现禁止IOS长按复制粘贴功能
html5 touch事件实现触屏页面上下滑动
canvas 模拟实现电子彩票刮刮乐的代码
HTML5 Plus 实现手机APP拍照或相册选择图片上传的功能
Android自定义环形LoadingView效果
HTML5 canvas绘制五角星的方法
html5使用html2canvas实现浏览器截图
使用Canvas处理图片的方法介绍
利用Canvas模仿百度贴吧客户端loading小球的方法