格式与转义

演示: https://openxyz.github.com/web_front_code/resume/01-html/index-code.html

空白字符

细心的同学会发现,在制作html文档时,虽然你在某段文本中插入了多个空格,然而在浏览器中显示时,这些空格却统统消失不见了。

这是因为:在浏览器对html文档的默认处理规则中,文本中的空白字符,将会被浏览器自动过滤和删除掉。

所谓空白字符: 指空格、制表符、换行符、回车符、换页符、垂直制表符等。它们的共同的特征是没有对应的文字显示形态及含义,所以统称为空白字符。

空白字符源于传统的印刷术,人们使用大幅的留白、换行或对齐等方式来设计符合人类视觉习惯的版式,方便人类阅读。

但是,正如本书所一直所强调的,html文档应当聚焦于语义,因此这一类与内容无关的空白字符必须被无情的删除或忽略,而浏览器忠实的执行了这一html标准的设计初衷。

<pre>

不过,凡事都有例外,有些时候,作者不得已需要在html文档中插入有格式文本,譬如诗歌之类。

此时,可以使用<pre>标记(preserve),保留文本的原有格式。

参考 http://www.runoob.com/tags/tag-pre.html

<code>

<pre>经常组合使用的标记是<code>, <code>用于标记一段计算机代码或数学表达式。而一般来说,代码总会包含有特殊的排版格式,所以两者总是形影不离

http://www.runoob.com/tags/tag-code.html

问题: 在html文档中插入html代码

<code>
 html支持<h1></h1><h2></h2><h3></h3>等多类标题语义标记...
</code>

初入门的读者可能会认为,浏览器会识别出这是一段html源代码,从而将<h1></h1><h2></h2><h3></h3>作为内容文本而不是源代码原样不动的显示在屏幕上。然而,当你实际在浏览器中运行上述代码,你会发现什么也未显示出来。

答案很简单,浏览器忠实的对<h1></h1><h2></h2><h3></h3>这一段html标记或源代码进行了渲染,但是由于标记中没有文本,因此在屏幕上显示为一片空白。

你可能会说,我明明使用了<code>标记告诉浏览器这是一段代码。但很不幸的是,在当前的浏览器软件中,对于<code>所标记的内容并不会进行任何特殊的处理,仍然是按照普通html文档进行处理和渲染。这里的道理很简单,世界上的代码种类有成千上万,浏览器无法一一识别并为其做特殊处理。

转义

其实,在任何计算机语言中都存在这类状况,即如何在源代码中嵌入和引用一段源代码,并标记或告知编译器或处理器这段代码是普通文本而不是代码。

解决方案就是:转义。各类编程语言中都提供有转义机制,在html中,则是字符实体。

字符实体使用了另一种书写机制来表达html代码。也就是说,当使用字符实体形式来书写html源代码,则浏览器将其视为内容文本,而不是源代码标记。譬如:

  • "&lt;" 代表 "<","&gt;" 代表 ">","&nbsp;" 表示空格
  • &lt;h3&gt;登金陵凤凰台&lt;/h3&gt; 在浏览器中将被渲染为<h3>登金陵凤凰台</h3> ,而不是三级标题

http://www.runoob.com/html/html-entities.html

results matching ""

    No results matching ""