前端工程师必知必会-xhtml与html

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

上海腾一研发部内部技术文档1530289222924(1/8)上海腾一研发部内部技术文档文档标题前端工程师必知必会.doc分类标签资料来源网络URL修订历史2010-01-18由zhy收录上海腾一研发部内部技术文档1530289222924(2/8)前端工程师对这些东西要“想都不用想”就知道么HTML与XHTML二者有什么区别,你觉得应该使用哪一个并说出理由。这篇文章主要阐述HTML和XHTML的区别。简单来说,XHTML可以认为是XML版本的HTML,为符合XML要求,XHTML语法上要求更严谨些。详见:以下是XHTML相对HTML的几大区别:XHTML要求正确嵌套XHTML所有元素必须关闭XHTML区分大小写XHTML属性值要用双引号XHTML用id属性代替name属性XHTML特殊字符的处理XHTML要求强制开头DTD,参见ps1以下是正确的嵌套:Html代码1.p布啦布啦strong独树一帜/strong。/p以下是错误的嵌套:Html代码1.p布啦布啦strong独树一帜/p/strong。XHTML所有元素必须关闭在HTML中,比如p,li这些标记,你可以不写/p,/li,但是在XHTML里,必须要求写关闭标记(ClosingTag)。比如:Html代码1.p布啦布啦很认真。上海腾一研发部内部技术文档1530289222924(3/8)应该写成:Html代码1.p布啦布啦很认真。/p处理空元素有些空元素,在XHTML里的写法是在之前加空格和斜杠。比如br,应该写成br/。以下是空元素的例子:Html代码1.br/2.hr/3.imgsrc=/images/adpics/1/b027.jpgalt=blabla/4.linkrel=stylesheethref=/styles/blabla.csstype=text/css/5.metahttp-equiv=content-typecontent=text/html;charset=UTF-8/XHTML区分大小写HTML不区分大小写,但是XHTML是区分大小写的。XHTML的所有标记和属性都要小写。比如:Html代码1.IMGSRC=/images/adpics/1/b027.jpgAlt=blabla/应该写成:Html代码1.imgsrc=/images/adpics/1/b027.jpgalt=blabla/XHTML属性值要用双引号HTML并不强制要求属性值加双引号。比如你可以写:Html代码1.tablecellspacing=02.inputchecked但在XHTML里,应该写成:Html代码上海腾一研发部内部技术文档1530289222924(4/8)1.tablecellspacing=02.inputchecked=checked/XHTML用id属性代替name属性HTML很多元素,比如a,applet,frame,iframe,img和map,有name属性。在XHTML里是要废除的,而用id属性取而代之。比如:Html代码1.imgsrc=blabla.gifname=blablalogo/应该写成:Html代码1.imgsrc=blabla.gifid=blablalogo/XHTML特殊字符的处理&应该在XHTML里应该写成&。比如:You&Me应该写成:You&Me还有如果内嵌Javas-cript代码,在XHTML里则应该写成:Html代码1.scrip-ttype=text/javas-cript//![CDATA[2....3.//]]/sc-ript给所有属性赋一个值XHTML规定所有属性都必须有一个值,没有值的就重复本身。例如:Html代码1.tdnowrapinputtype=”checkbox”name=”shirt”value=”medium”checked必须修改为:Html代码1.tdnowrap=”nowrap”inputtype=”checkbox”name=”shirt”value=”medium”checked=”checked”上海腾一研发部内部技术文档1530289222924(5/8)不要在注释内容中使“–”“–”只能发生在XHTML注释的开头和结束,也就是说,在内容中它们不再有效。例如下面的代码是无效的:Html代码1.!–这里是注释———–这里是注释–用等号或者空格替换内部的虚线。Html代码1.!–这里是注释============这里是注释–以上这些规范有的看上去比较奇怪,但这一切都是为了使我们的代码有一个统一、唯一的标准,便于以后的数据再利用。浏览器的角度以上是从协议标准的角度来看待这个问题的。如果从浏览器的角度来看待这个问题,情况就有所不同。考虑一下,如果把XHTML写得很不严格,浏览器会怎么做?是不是会弹出一个对话框,写着“这个网站的开发人员技术不过关,写的不是正宗的XHTML文件,咱不显示”?显然,如果浏览器做成这个样子,倒贴钱也是不会有人用的。从浏览器的角度看待上面几个不同,大致是下面的测试结果(IE和Firefox我都测试过):XHTML要求正确嵌套:如果你没有嵌套,浏览器会试图帮你嵌套。XHTML所有元素必须关闭:如果你没有关闭,浏览器会试图帮你关闭。XHTML区分大小写:你非要写成大写,浏览器帮你转换成为小写。属性值要用双引号:你非要不肯加,浏览器帮你加。特殊字符的处理:You&Me也好,You&Me也好,浏览器都能读入。用id属性代替name属性:你非要用name也可以。如果你在文档开始用DocType指定为XHTML了,有一点需要注意。在给Tag用class指定CSS的时候,是区分大小写的。例如,你定义了一个CSS如下,Html代码1.style2..hello{......}3./style而你使用的时候写成,Html代码上海腾一研发部内部技术文档1530289222924(6/8)1.pclass=Hello......那这个CSS是不会被使用的。要积极的看待这个问题,这让你可以用更多的名字来命名Style,是一个好事。XHTML标准的前途从标准制定者的初衷看,制定XHTML标准是试图把HTML规范成为严格的XML格式,这样无可避免的会导致一个结果,就是从HTML到XHTML的升级导致标准的容错能力降低了。把自己的网页源文件写得严格一点当然是好事,但是一个标准不可能去要求浏览器降低自己的容错能力。XHTML1.0标准是兼容HTML4.01,是个不错的协议,可以让开发者在编写代码的同时通过一些工具来检查代码的合法性,虽然对于用户而言,制作出来的网页和HTML4.01相比实在没有什么不同。对于你写新的网页来说,使用XHTML1.0还是一个不错的选择。XHTML1.1标准要求浏览器不再支持原先的容错能力,这是一个标准制定者走火入魔的典型例子,这个标准从学术上说非常纯净,但是对于浏览器而言,则是个呆板、笨拙、不可理喻的标准。所以目前所有由人类开发的浏览器都没有遵照所谓纯净的XHTML1.1的标准,你的代码只要浏览器能读懂,他都会很好的显示出来,而不跳出弹框报错。从发展的趋势来看,一个标准没有浏览器服从,等于是没有意义的标准。从浏览器的实现角度来看,新的协议只能在原来HTML的基础上扩大能力增加容错,而不能缩小了能力减少容错。所以新的协议中,只有扩大能力增加容错的部分会被采纳,而其他部分都仅仅是纸上谈兵而已。ps:xhtmldtdXHTML1.0TransitionalHtml代码1.!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//EN代码1.!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Strict//EN代码1.!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Frameset//EN:标签嵌套规则下面是一份在HTML4Strict和XHTML1.0Strict下必须遵守的标签嵌套规则上海腾一研发部内部技术文档1530289222924(7/8)上海腾一研发部内部技术文档1530289222924(8/8)

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功