如何正确地在XHTML文档中使用JavaScript和CSS

所属分类: 网页制作 / HTML/Xhtml 阅读数: 1496
收藏 0 赞 0 分享
在越来越多的网站中,XHTML的使用正以很快的速度替代HTML4,但是,目前一些主流浏览器对XHTML的支持还不是很好,加上一些网页制作者对XHTML和HTML4之间的差异理解不够,使得XHTML在WEB发展上进程变得缓慢。


XHTML是XML而不是HTML

目前,对XHTML的一个主要误解是它是HTML的另外一个版本。造成此误解的一个事实是Microsoft Internet Explorer仅支持MIME格式为text/html的XHTML而不是被推荐的application/xhtml+xml格式。

当一个XHTML页面被以text/html的MIME格式解析时,它和HTML页面没有任何差别,而当它以text/xml或者application/xhtml+xml的MIME格式解析时,它将遵从严格的XML书写和显示规则。

正确的XHTML格式是一个XML程序并且在书写的时候需要按照以下的严格规则:

1.字符<和&不允许出现在XHTML文档内容中,除非它们被包含在CDATA标签中(<![CDATA[...]]>)

2.注释标签(<!--...-->)内容中不能包含两个连续的横杠(--)

3.包含在注释标签(<!--...-->)中的内容将被忽略


style和script内容中的问题

style和script标签内的内容在XHTML被以XML格式(而不是HTML格式)解析时将造成一些不同的差异。

JavaScript中包含了XHTML中不能存在的字符

Javascript的一些特别字符是XHTML的CDATA标签外不能存在的字符。

<script type="text/javascript">
  var i = 0;
  while(++i < 10){
    //...
  }
</script>

注意:上面的示例代码并非良好的XHTML格式,因为它使用了XHTML或XML中不允许的标记"< "


在style和script内容中使用注释

熟悉HTML的作者通常了解,将style和script标签内容放到注释标签内,将在浏览器中隐藏这些内容,但有些浏览器却不能理解它们。

<style type="text/css">
<!--
  body {background-color: blue; color: yellow;}
-->
</style>
<script type="text/javascript">
<!--
  var i = 0;
  var sum = 0;

  for (i = 0; i < 10; ++i)
  {
    sum += i;
  }
  alert('sum = ' + sum);
// -->
</script>

上面的示例说明了如何在浏览器中忽略注释标签内的内容,同时,这个示例还显示了浏览器在处理text/xml格式和application/xhtml+xml格式的内容的区别。

Mozilla 1.1+ / Opera 7
不应用CSS,不执行JavaScript

Netscape 7.0x / Mozilla 1.0.x
不应用CSS,但执行JavaScript

Internet Explorer 5.5+
不显示该文档.(参见:https://developer.mozilla.org/Ta ... _in_XHTML_Documents )


style和javascript内含有两个连续的横杠(--)

在XHTML页面的JavaScript中使用注释标签进行处理时产生的另一个问题就是JavaScript中会有出现两个连续的横杠(--)的情况:


<script type="text/javascript">
<!--
  var i;
  var sum = 0;

  for (i = 10; i > 0; --i)
  {
    sum += i;
  }
// -->
</script>

使用CDATA代替注释

将script标签内的内容放到CDATA块中可以很好地处理注释中出现两个连续的横杠的问题,不过这将使得一些低版本的浏览器不支持它,因为它们不能理解XML。好在,我们可以通过使用JavaScript中的注释符对CDATA块进行注释以达到兼容的目的。

<script type="text/javascript">
//<![CDATA[
  var i = 0;

  while  (++i < 10)
  {
    // ...
  }
//]]>
</script>


推荐的xhtml与html兼容处理方式

不要在XHTML页面中直接书写style和script,一个好的替代方案是使用外部文件来书写CSS和JavaScript,然后再在XHTML中进行引入。

这个推荐方案看起来非常不错,不管怎样,它使得页面从text/html向application/xhtml+xml转变的过程中,至少在接下来的这些年里不会出现什么问题。
更多精彩内容其他人还在看

被遗忘掉的button标签

注:这篇文章已经有人翻译过重新认识button 标签,但是感觉其中有很多地方值得推敲,不太好理解。因此本人结合个人学习体会重新翻译而成此文。 英文原文:http://particletree.com/features/rediscovering-the-button-elemen
收藏 0 赞 0 分享

标记语言——标题

点击这里返回网页教学网 HTML教程 栏目. 上文:Chapter1 清单 原文出处 标准化设计解决方案 - 标记语言和样式手册 Web Standards Solutions The Markup and Style Handbook Part 1:
收藏 0 赞 0 分享

改进网站设计提供的有意的建议

科学设计你的网站网页:来自 Eye-Tracking研究的23节必修课——Christina Laun 在网络设计领域关于Eye-Tracking的研究十分火爆,但是如何把这些研究结果转变为具体可行的设计来运作依旧是个难点。以下就是一些来自于Eye-
收藏 0 赞 0 分享

网页教案,针对初学者的教案

教学主题 网页 适用年级
收藏 0 赞 0 分享

多个HTML页面共同调用一段html代码的方法

这篇文章主要介绍了多个HTML页面共同调用一段html代码的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

提交表单后转到另一个文件

问题:在HTML中如何写跳转到某文件? HTML中我希望按了提交后转到aaa.asp这个文件,action这里应该怎么写? form<form id="form" name="form" method="post
收藏 0 赞 0 分享

表格标签(table)深入了解

表格(table)是一直以来长期被大家使用的标签,直到现在还是在用,不过呢因为现在的网站重构,建议大家不要表格(table)来布局而很多朋友误以为用表格(table)就是所谓的不标准了,其实不然,表格(table)是一个重要元素。 前不久为了寻找表格(table)所包含的主
收藏 0 赞 0 分享

容易混淆使用位置的XHTML标签

  我们在webjx.com的文章中一直在强调语义,那么对于HTML标签该如何使用呢?他们一般的使用位置在哪里呢?   在刚接触XHTML CSS设计网页时,对于标签的使用没什么经验,也很随意,经常是想起什么就用什么,认为只要能实现效果就可以。但随着学习的深入和对搜索引擎优
收藏 0 赞 0 分享

类型File的Input按钮功能研究

在一些网站进行上传时,当单击了“浏览”按钮之后会弹出【选择文件】的对话框。很多时候我们需要只上传图像文件,那么在弹出的【选择文件】对话框中只显示了相关图片格式的文件,此外其余格式文件一律过滤不被显示。 比如 http://www.youku.com/
收藏 0 赞 0 分享

ul列表标记设计网页多列布局

几天在用CSS写三列布局的时候突然想到的这样一个方法,这个想法自己都觉得有些疯狂,如果其中有什么不对的地方请各位不吝指教。   当需要写一个三列布局的时候,一般情况下我会选择使用如下的DIV布局方式:
收藏 0 赞 0 分享
查看更多