精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站设计>html/xhtml教程>正文

正确使用XHTML的冒险


来源:网络整理 时间:07-09-17 点击: 点击这里收藏本文

XML声明可能是必须的

如果要使用UTF-8或者UTF-16以外的变法,必须要XML声明,除非HTTP头已经提供编码。

在HTTP头中是否要指定字符编码有些模糊,Architecture of the World Wide Web, Volume One: Media Types for XML这样写的: 总体上,不应该在协议头为XML数据指定字符编码,因为数据本身已描述。

另一方面, XHTML 1.0, Second Edition: Character Encoding 1.0, Second Edition: Character Encoding写到:

为了让文档使用指定的字符编码,最好的办法是保证web服务器发送正确的头。

就是说,在XML声明中指定字符编码是好的习惯:

<?xml version="1.0" encoding="iso-8859-1"?>

只有五个实体是安全的

只有五个预定义的实体(&lt;, &gt;, &amp;, &quot;, 和&apos;)的支持是有保证的。其他的可能完全被忽略或者直接输出。比如,如果 XHTML文档包含如&nbsp;或者&rdquo;的实体,Safari会直接地输出。Opera反而选择忽略未知的实体,同时Mozila家族会认得这些实体并且就像HTML中 “如果文档引用公共的映射浏览器伪 DTD目录中的标识符并且没有单独声明的文档”来处理。

使用UTF-8字符编码是最受推荐的,让你(几乎)可以使用你需要键入文档的任意字符,不需要实体或者字符编号。如果你不能或不愿使用UTF-8,数字式的字符编号是可以支持和安全使用的。

SGML式注释的内容可能会被忽略

SGML注释( HTML风格注释, <!-- 注释 -->)可能会(并且会)被浏览器当作注释,就算是在script或者style元素内部使用。

HTML中,普遍地把scriptstyle的内容装入注释中,为的是在不认识scriptstyle元素的浏览器中隐藏他们,并且在页面上把其内容生成平白文本。

XHTML中,这样做会引起浏览器忽略掉注释里的任何内容。

在老的浏览器中隐藏scriptstyle的习惯可以追溯到1990年代中期。我的经验是,有如此表现的浏览器是十分罕见的,所以你可以安全地忽略它们,并且停止在脚本和样式中装入SGML式注释,就算你使用的是HTML。

脚本和样式元素的内容也被当作XML

样式和脚本元素是PCDATA(parsed character data,解析字符数据)块,不是CDATA(character data,字符数据)块。因此,在其内看起来像XML的任何东西都会被当作XML来解析,并且会引发错误除非是良构的。

为了在scriptstyle块中使用<、&或者--,你需要用CDATA

  1. <script type="text/javascript">
  2. <![CDATA[
  3. ...
  4. ]]>
  5. </script>

在CDATA里,你可以任何顺序的字符,它们不会被当作XML来解析(除了结束CDATA部分]]>)。

需要以text/html发送的文档中,CDATA部分的起始和结束标签需要注释掉,以便在不能处理CDATA部分的浏览器中隐藏:

  1. <script type="text/javascript">
  2. // <![CDATA[
  3. ...
  4. // ]]>
  5. </script>
  1. <style type="text/css">
  2. /* <![CDATA[ */
  3. ...
  4. /* ]]> */
  5. </style>

9 7 3 1 2 3 4 8 :

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.