在XHTML文档中合适的使用CSS和JavaScript
在许多站点中XHTML正在迅速的替代HTML 4;然而,主流浏览器对完全支持XHTML方面表现得不足,和网页设计师对HTML 4与XHTML的基本差异缺乏理解,产生了当今网络上的一个不断扩大的问题。
XHTML是XML,不是HTML
其中关于XHTML的主要的误解是,它仅仅是另外一个版本的HTML。这个误解产生于这样的事实:Microsoft® Internet Explorer只在文件以Mime类型为 text/html提交时,才支持XHTML,而标准中建议的类型其实是application/xhtml+xml。
当一个XHTML页面的MIME类型被提交为text/html时,它被所有的浏览器当作HTML处理,就好像XHTML比起HTML来没有任何不同。但是当一个XHTML页面的MIME类型被提交为text/xml或application/xhtml+xml时,它将被当作XML文档处理,而设计和显示XML都是必须要遵守严格规则的。
真正的XHTML就是一个XML的应用,所以创建XHTML时也要遵守严格的规则。特别是:
- 未经过处理的<和&不允许出现在CDATA区域(<!CDATA...>)之外。
- 注释(<!—— ... ——>)中不能包含双横线。
- 包含在注释(<!—— ... ——>)中的内容将被忽略。
在内嵌的style和script中出现的问题
在被当作XML而不是HTML处理时,内嵌的style和script标记会产生几个不同的问题。
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+
无法正常显示文档。
包含双横线的内嵌style和script
另一个把JavaScript包含在XHTML文件的注释中产生的问题,与在XHTML的注释中使用双横线会产生的问题一样。
<script type="text/javascript">
<!--
var i;
var sum = 0;
for (i = 10; i > 0; --i)
{
sum += i;
}
// -->
</script>
使用CDATA替代注释
直接把JavaScript放入CDATA区域会在低版本不支持XML的浏览器中产生问题,不过,把JavaScript的注释(//……)与CDATA一起使用,就能解决向下兼容的问题了。
<script type="text/javascript">
//<![CDATA[
var i = 0;
while (++i < 10)
{
// ...
}
//]]>
</script>
例子
在注释中使用内嵌style的CSS规则
例子1 - XHTML 1.0 Strict在text/html
这个例子举例说明当CSS规则包含内联和包含在注释中时的XHTML在text/html的行为。这个例子支持Netscape 7.x,Mozilla,Opera 7和Internet Explorer 5.5+那一个都能像期望一样应用CSS规则。
例子2 - XHTML 1.0 Strict在text/xml
这个例子举例说明当CSS规则包含内联和包含在注释中时的XHTML在text/xml的行为。这个例子支持Netscape 7.x,Mozilla,Opera 7但不支持Internet Explorer 5.5+。注意etscape 7.x,Mozilla和Opera同意包含在注释的内联CSS规则将被忽略。
例子3 - XHTML 1.0 Strict在application/xhtml+xml
这个例子举例说明当CSS规则包含内联和包含在注释中时的XHTML在application/xhtml+xml的行为。这个例子支持Netscape 7.x,Mozilla,Opera 7但不支持Internet Explorer 5.5+。注意etscape 7.x,Mozilla和Opera同意包含在注释的内联CSS规则将被忽略。
使用外部文件的CSS规则
例子4 - XHTML 1.0 Strict在text/html
这个例子举例说明当在使用外部文件的CSS规则的时候XHTML在text/html的行为。这个例子支持Netscape 7.x,Mozilla,Opera 7和Internet Explorer 5.5+。
例子5 - XHTML 1.0 Strict在text/xml
这个例子举例说明当在使用外部文件的CSS规则的时候XHTML在text/xml的行为。这个例子支持Netscape 7.x,Mozilla和Opera 7但不支持不支持Internet Explorer 5.5+。
例子6 - XHTML 1.0 Strict在application/xhtml+xml
这个例子举例说明当在使用外部文件的CSS规则的时候XHTML在application/xhtml+xml的行为。这个例子支持Netscape 7.x,Mozilla和Opera 7但不支持不支持Internet Explorer 5.5+。
建议
不要在XHTML中内联style或script
用外部文件包含CSS规则和JavaScript来替换内联样式和脚本是创建XHTML最佳方式,在向后兼容方式时,如果内容的MIME类型从text/html向application/xhtml+xml改变时将不会被打断。
这个建议可能看起来更强烈,可是,它是未来XHTML要打算的问题,当XHTML在text/html向application/xhtml+xml转移在几年后发生。
如果你仅仅测试你的XHTML在text/html的时候,那么你可能产生问题,例如像:不能准确的描述出主题。移动CSS和JavaScript到单独的文件是可靠的方法,关于改变你XHTML的服务方式。
理解XHTML 1.0的HTML兼容指导
这个XHTML 1.0 HTML Compatibility Guidelines帮助创建XHTML文档向后兼容性在那些不能理解XML的老浏览器。
请注意那是纯粹的XHTML文档,你不需要使用xml-stylesheet处理指导,但应该使用link涉及的外部文件包含CSS。
分享到:
相关推荐
一般有两种引入CSS的方式,一种是内联样式,即直接在HTML元素中使用style属性;另一种是使用标签在网页的头部或外部文件中定义样式。而JavaScript一般通过标签来引入,既可以内联也可以链接外部文件。在引入这些语言...
总之,《Beginning HTML, XHTML, CSS, and JavaScript》是一本非常适合初学者入门的书籍,它不仅全面地介绍了网页开发的基本知识,而且还提供了丰富的实践案例和在线资源,帮助读者更好地理解和掌握这些关键技术。
《CSS+XHTML+JavaScript完全学习手册》是一本详尽且全面的教程,旨在帮助读者掌握Web开发中的核心技术。这本手册将引导你从基础到高级,深入理解并运用CSS(层叠样式表)、XHTML(扩展超文本标记语言)以及...
在IT行业中,前端开发是构建网页和Web应用程序的关键部分,涉及的主要技术包括CSS、JavaScript、jQuery、xHTML、XML以及XMLHttpRequest(通常简称为XHR)。这些技术共同构成了现代Web开发的基础,下面将对它们进行...
DHTML的动态效果主要通过JavaScript和CSS的组合实现,通过修改DOM树和应用样式变化来实现页面的动态更新。 综上所述,"Beginning HTML, XHTML, CSS, and JavaScript"这本书将深入讲解这些Web开发基础知识,帮助读者...
正确地在XHTML文档中使用JavaScript和CSS涉及到理解XHTML与HTML的区别、遵循XHTML的语法规则,以及使用CDATA等技术来处理在XML环境下可能遇到的问题。随着浏览器对XHTML支持的增强和Web开发实践的演进,未来XHTML和...
在"HTML、XHTML、CSS与Javascript入门经典"这本书中,你将学到如何编写有效的HTML和XHTML文档,理解各种标签的用途和语义;学会使用CSS选择器和属性来设计美观的页面布局,以及实现颜色、字体和布局的控制;进一步,...
在IT领域,网页开发是不可或缺的一部分,而DHTML、CSS和JavaScript是构建动态、交互式网页的核心技术。本文将深入探讨这些技术,并结合提供的学习资料,帮助你掌握这些关键技能。 首先,DHTML(Dynamic HTML)是90...
《XHTML、CSS与JavaScript入门经典的源代码》是一份针对网页制作初学者的宝贵资源,它涵盖了网页设计的三大核心技术:XHTML、CSS和JavaScript。这些技术是构建现代交互式和响应式网页的基础。 首先,XHTML...
"image"目录可能存储了网页中使用的图像资源,它们可以被CSS引用以增强视觉效果。"js"目录则包含了JavaScript源代码,实现了页面的交互逻辑和动态功能。 通过学习和实践这些CSS和JavaScript的知识,开发者能够创建...
Hyper Text Markup Language...JavaScript中变量声明,采用其弱类型。 即变量在使用前不需作声明,而是解释器在运行时检查其数据类型 x=1234; //数值型变量 y=“4321”; //字符型变量 代码格式不一样 嵌入方式不一样
3. 连接样式表:在XHTML文档中引入CSS文件,使用`<link>`标签链接外部样式表,或直接在`<style>`标签内编写内联样式。 4. 调整布局:利用CSS的布局技巧,如浮动、定位、Flexbox或Grid,调整元素的位置和大小。 5. ...
在网页开发领域,CSS(层叠样式表)、JavaScript和xHTML是至关重要的技术。这个压缩包包含四本详细的手册,分别聚焦于这些关键领域的核心概念、语法和实践应用。 首先,CSS参考手册是Web设计师的必备工具。CSS用于...
此外,还讲解了XHTML文档结构,如DOCTYPE声明、头部元素、主体元素,以及如何使用链接、图像、表格、列表等元素来构建内容丰富的网页。 第十四章:JavaScript动态网页编程 JavaScript是网页开发中的动态语言,让...
虽然现在使用较少,但在一些老系统和自动化脚本中仍有应用。 6. **NHibernate**:NHibernate是一个.NET框架,用于简化.NET应用中的对象关系映射(ORM)。它处理数据库交互,将对象模型与关系数据库模型进行映射,...
XML的命名空间特性允许在同一个文档中使用来自不同来源的词汇表,避免了元素名称的冲突。此外,XML还支持DTD(文档类型定义)和XML Schema等验证机制,确保文档结构的合法性。 HTML5中引入了与XML相关的技术——...
开发者可以使用这个DTD来验证自己的XHTML文档是否符合标准。 `xhtml-history.gif` 可能是一个展示XHTML历史演变的图像文件,帮助我们了解XHTML从HTML发展而来,以及它如何演变成更严格、更接近XML的语法。 `Ecma-...
- **内容概述**:本书是一本面向初学者的指南,旨在教授如何使用XHTML、CSS以及JavaScript来创建吸引人的网站,并确保这些网站在不同浏览器及移动设备上都能正常工作。 #### 二、核心知识点详解 ##### 1. 结构化...