【知识】HTML和XHTML常见问答
神兽哥斯拉吧
全部回复
仅看楼主
level 9
哥斯拉 楼主
本楼给哥斯拉!
2008年07月15日 06点07分 1
level 9
哥斯拉 楼主
本文章原载中国万维网联盟地址http://www.w3china.org/index.htm
2008年07月15日 06点07分 2
level 9
哥斯拉 楼主
HTML也许是全球最成功的文档标记语言(markup language)。不过,在XML被提出之后,有一个两天的研讨会讨论了是否需要一个基于XML的新版HTML。该研讨会的意见是明确的:即需要一个基于XML的HTML,这样其他XML语言可以包含XHTML片断,而XHTML文档也可以包含其他标记语言的片断。我们还能利用重复设计(redesign)以去除HTML中某些较不整齐的部分并添加一些新需要的功能(比如更好的表单)。
2008年07月15日 06点07分 3
level 9
哥斯拉 楼主
如果你的文档仅是纯XHTML 1.0的(不包含其他标记语言),那么你还不能体会到较多的不同。但是,随着越来越多XML工具(比如用于文档转换的XSLT)的出现,你将能体会到使用XHTML的优点。比如,XForms使你可以用便捷的方式来编辑XHTML文档(或其他类型的XML文档)。语义Web应用也将得以从XHTML文档获利。如果你的文档不仅是XHTML 1.0,比如还包含了MathML、SMIL或SVG,那么优点将是立竿见影的:用HTML你是不可能完成这些事的。
2008年07月15日 06点07分 4
level 9
哥斯拉 楼主
我可以把XML声明放到已有的HTML文档顶部吗?我可以把HTML 4.01和XHTML文档混杂在一起吗?不可以。HTML并不是基于XML格式的。你必须对HTML文档作必要的修改才能使之成为
正确的
XML文档。[编辑]HTML文档转换到XHTML的最容易的方法是什么?你可以利用HTML Tidy (http://tidy.sourceforge.net/)将HTML文档转换为一个XHTML文档。另外,Amaya (http://www.w3.org/Amaya/)也是一个可以把HTML文档保存为XHTML的浏览器和编辑器。
2008年07月15日 06点07分 5
level 9
哥斯拉 楼主
这是当然的。HTML浏览器接受任何输入(正确的或不正确的),并试图使之得以正常显示。这种错误纠正使得浏览器程序的编写变得很难,尤其是在所有浏览器都被期望具有相同的显示结果时。这也意味着大量的HTML文档是不正确的,因为它们可以在浏览器中正常显示,所以文档作者未能注意到错误的存在。这使得新的用户代理(user agents)[译注//浏览器是一种用户代理]的编写变为惊人的困难,因为声称符合HTML的文档通常存在着很多错误。
2008年07月15日 06点07分 6
level 9
哥斯拉 楼主
我的HTML文档在我的浏览器中显示正常,为什么我还要关心它是不是正确的HTML?所有的浏览器都知道应如何去处理正确的HTML,但是对于不正确的HTML文档,浏览器必须要去修正它。而各种浏览器的修复方式是不统一的,这就造成了差异。于是你的文档在不同的浏览器中将会呈现出不同的显示结果和行为方式。由于目前的浏览器种类繁多,而且还在不断增多(除PC机的浏览器以外,还有PDA、手机、电视、打印机甚至电冰箱上的浏览器),因此不可能在每一种浏览器上对你的文档进行测试。如果你使用的是不正确的HTML,并且不能在某种浏览器上正常打开它的话,这将是你的过错;如果你使用的是正确的HTML,而不能正常打开的话,那就是浏览器的bug了。
2008年07月15日 06点07分 8
level 5
W3C提供了一个对文档进行验证的服务,该服务位于http://validator.w3.org/ (http://validator.w3.org/)。Amaya (http://www.w3.org/Amaya/)是一个浏览器和编辑器,也可用它来确保标记的正确使用。
2008年07月15日 06点07分 9
level 1
在HTML时代的早期,不同的组织和公司随意地在HTML中添加新的元素和属性,这成为导致由不可互操作的各种HTML版本造成混乱的潜在因素。XML(其中的X代表Extensible,即可扩展的)允许人们使用来自不同语言的元素和属性,但是为了使浏览器或其他用户代理可以知道哪个元素归属哪个语言,你必须对此加以说明。而命名空间声明(namespace declarations)就是用于这一目的的。
2008年07月15日 06点07分 12
level 9
哥斯拉 楼主
XHTML是一种XML格式。这表明,严格地说应该用一个XML相关的媒体类型(meida type)(如application/xhtml+xml、application/xml或text/xml)来发送XHTML。不过XHTML 1.0是经过精心设计的,XHTML文档只要在制作时略加注意便可在传统的HTML用户代理上工作。只需你遵守一些简单的规则,你就可以使许多XHTML 1.0文档能够在传统的浏览器上工作。可是,传统的浏览器仅能理解text/html媒体类型,于是你必须使用text/html来发送XHTML 1.0文档。不过需要注意的是,以text/html发送XHTML文档意味着那些浏览器将把它们作为HTML文档,而不是作为XHTML文档来处理。
2008年07月15日 06点07分 13
level 5
我们所知道的支持application/xhtml+xml的浏览器包括:所有基于Mozilla的浏览器(如Mozilla、Netscape 5或更高版本、Galeon和Firefox)、Opera、Amaya、Camino、Chimera、DocZilla、iCab、Safari,以及所有接受WAP2的手机浏览器。实际上,任何最新的浏览器都将支持application/xhtml+xml媒体类型。大多数浏览器也接受以application/xml发送的XHTML文档。
2008年07月15日 06点07分 14
level 1
不支持。不过有一个技巧可以让你把XHTML 1.0文档以application/xml提供给IE浏览器。将下列粗体部分列于你的文档头部:
2008年07月15日 06点07分 15
level 1
这里的copy.xsl是一个包含下列内容的文件:
2008年07月15日 06点07分 16
level 1
注意:该文件必须与引用它的文档存在于同一目录下。尽管你把该文档作为XML提供给浏览器,并能够作为XML被解析,但是浏览器认为它收到的是text/html,因此你的XHTML 1.0文档必须遵守一些规则以被传统浏览器所接受。
2008年07月15日 06点07分 17
level 9
哥斯拉 楼主
CSS有许多特别的规则仅应用于HTML。这些规则也应用于XHTML吗?不。仅应用于HTML的CSS规则将只会应用于以text/html发送的文档。[编辑]document.write可以在XHTML中用吗?不。根据XML的定义方式,不允许使用任何这类手法:即当解析器还在解析标记时,用脚本来生成标记。 你仍可以取得相同的效果,只是你必须用DOM来增加或删除元素。[编辑]为什么不允许以text/html发送XHTML 1.1文档?XHTML 1.1是纯XML的,并旨在仅作为XML。它不能确保被发送到传统浏览器上。因此XHTML 1.1文档必须以一个XML相关的媒体类型(比如application/xhtml+xml)来发送。
2008年07月15日 06点07分 18
level 5
不是。XHTML 1.0存在三种版本:strict(严格式)、transitional(过渡式)和frameset(框架式)。这三种版本都尽量地在XML允许范围内保持与HTML 4.01接近。XHTML 1.1是对XHTML 1.0 strict的更新,而target属性没有包含在任何HTML strict的版本中。XHTML 1.1没有对XHTML 1.0的其他两种版本(transitional和frameset)进行更新。如果你要使用target属性的话,那么请使用XHTML 1.0 transitional。
2008年07月15日 06点07分 19
level 1
XHTML模块化(XHTML Modularization)不是针对常规XHTML用户的,而是针对基于XHTML的语言的设计者的。已经注意到,各个公司和组织在设计他们自己版本的HTML和XHTML时有一种趋势,即这些HTML和XHTML常常不能在基本程度上互操作。XHTML模块化将XHTML划分为许多个模块(module),在定义一个新的语言时,这些模块可被各自地选取;这样,任何使用table的基于XHTML的语言都能确保使用同样的table的定义,而不是各种不同版本的table。模块化也明确了哪里可以插入新元素(element),哪里不可以。
2008年07月15日 06点07分 20
level 9
哥斯拉 楼主
BD又发神经了,只好用图片代替了,唉!
2008年07月15日 06点07分 21
level 5
不。虽然
在XHTML2中会被取代,但不是被
而是被其他标签所取代(不过如果你愿意的话,也可以使用
)。
的设计在HTML中存在许多问题:没有备选(fallback)[译注//即当用户代理不能处理某种类型的图像时,可将备选内容作为显示结果]的可能性,因此如果你使用了PNG图像,而浏览器不支持该类型图像的话,那么浏览器只能用img元素的alt文本作为显示结果。这一状况导致了在许多方面强于GIF和JPG图像的PNG图像不能被采用,因为人们总会采用最广为接受的格式以确保图像能被正常显示。不能对alt文本作标记,因此如果要使用alt文本的话,你只能得到纯文本。虽然可以在img元素中使用longdesc属性引用一个对图像作描述的链接,以帮助不能看到图片的人,但是该属性很少被实际使用。在XHTML 2中是这样做的:所有图像都与某个元素的内容片断相等价。XHTML 2允许在任何元素(element)上使用src属性来引用一个图像。如果该图像可用[译注//比如可以获得相应的图片文件],并且浏览器可以处理它,那么就使用该图像,否则就使用该元素的内容。下面是一个例子:
2008年07月15日 06点07分 22
level 5
这样的优点是,当图像由于某些原因不可用时(比如由于网络故障),或者浏览器不能显示该类型的图像时,你的文档仍然有友好的显示结果。如果你要提供多种类型的图像,你可以这样做:
2008年07月15日 06点07分 23
1 2 尾页