- 浏览: 3322774 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (567)
- Web前端-html/表单 (19)
- Web前端-CSS (24)
- Web前端-CSS框架 (4)
- Web前端-JS语言核心 (50)
- Web前端-JS客户端 (26)
- nodejs生态+grunt (10)
- seajs和requirejs (9)
- backbone等框架 (7)
- 模板基础 (7)
- Web前端-deps(不改动) (6)
- Web前端-component (10)
- Web前端-jquery-plugin (13)
- 浏览器兼容性 (6)
- Web前端-使用jQuery (25)
- Web前端-使用jqueryui (6)
- Web前端-性能优化 (3)
- Web协议-HTTP (6)
- ExtJS (13)
- PHP (22)
- PHP面向对象 (4)
- PHP扩展-SOAP (6)
- PHP扩展-curl (4)
- PHP与HTML(导出) (5)
- PHP扩展-综合 (7)
- mysql基础应用 (18)
- 技术心情 (18)
- 算法和面试题 (17)
- 工具(开发)使用 (36)
- memcached原理 (2)
- session和cookie (4)
- UML (2)
- Web前端_FusionCharts (5)
- Web前端_Flex (4)
- Web前端_JSP (3)
- JavaSE (10)
- JavaEE (4)
- tomcat (2)
- Servlet开发 (3)
- Spring开发 (1)
- REST相关 (2)
- 大访问量、高并发 (2)
- 网络编程 (1)
- YII (21)
- linux命令和内核 (12)
- yii与数据库 (10)
- yii与表单 (12)
- yii view层 (1)
- perl (7)
- yii扩展 (7)
- shell (4)
- photoshop (7)
- 视觉设计 (2)
- 我关注的名人在路上 (4)
- 1-自学能力 (1)
- 2-人际沟通能力 (3)
- 3-职业规划能力 (7)
- 4-项目管理能力 (2)
- python (3)
- django (4)
- Mysql高级应用 (6)
- prototype.js (4)
- Web系统安全 (1)
- Web前端-mobile (2)
- egret (6)
- jQuery源码分析 (5)
- fis (4)
最新评论
-
yzq21056563:
感谢作者分享~请教下,http://www.lisa33xia ...
CSS基础:text-overflow:ellipsis溢出文本 -
u012206458:
$.ajax的error,complete,success方法 -
DEMONU:
谢谢,虽然不能给你赞助,但是要给你顶
mysql中key 、primary key 、unique key 与index区别 -
njupt_tolmes:
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
CSS基础:text-overflow:ellipsis溢出文本 -
zenmshuo:
用过SpreadJS,也包含数据可视化的图表
推荐几个web中常用js图表插件
这篇文章主要阐述 HTML 和 XHTML 的区别。简单来说,XHTML 可以认为是 XML 版本的 HTML,为符合 XML 要求,XHTML 语法上要求更严谨些。
以下是 XHTML 相对 HTML 的几大区别:
XHTML 要求正确嵌套
XHTML 所有元素必须关闭
XHTML 区分大小写
XHTML 属性值要用双引号
XHTML 用 id 属性代替 name 属性
XHTML 特殊字符的处理
XHTML 要求正确嵌套
以下是正确的嵌套:
<p>布啦布啦<strong>独树一帜</strong>。</p>
以下是错误的嵌套:
<p>布啦布啦<strong>独树一帜</p></strong>。
XHTML 所有元素必须关闭
在 HTML 中,比如 <p>,<li> 这些标记,你可以不写 </p>,</li>,但是在 XHTML 里,必须要求写关闭标记 (Closing Tag)。
比如:
<p>布啦布啦很认真。
应该写成:
<p>布啦布啦很认真。</p>
处理空元素
有些空元素,在 XHTML 里的写法是在">"之前加空格和斜杠。比如<br>,应该写成<br />。
以下是空元素的例子:
<br />
<hr />
<img src = "/images/adpics/1/b027.jpg" alt = "blabla" />
<link rel="stylesheet" href="/styles/blabla.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
XHTML 区分大小写
HTML 不区分大小写,但是 XHTML 是区分大小写的。
XHTML 的所有标记和属性都要小写。
比如:
<IMG SRC = "/images/adpics/1/b027.jpg" Alt = "blabla" />
应该写成:
<img src = "/images/adpics/1/b027.jpg" alt = "blabla" />
XHTML 属性值要用双引号
HTML 并不强制要求属性值加双引号。比如你可以写:
<table cellspacing = 0>
<input checked>
但在 XHTML 里,应该写成:
<table cellspacing = "0">
<input checked = "checked" />
XHTML 用 id 属性代替 name 属性
HTML 很多元素,比如 a,applet,frame,iframe,img 和 map,有 name 属性。在 XHTML 里是要废除的,而用 id 属性取而代之。
比如:
<img src="blabla.gif" name="blabla logo" />
应该写成:
<img src="blabla.gif" id="blabla logo" />
XHTML 特殊字符的处理
& 应该在 XHTML 里应该写成 &。
比如:
You & Me
应该写成:
You & Me
还有如果内嵌 Javascript 代码,在 XHTML 里则应该写成:
<script type="text/javascript">//<![CDATA[
...
//]]></script>
浏览器的角度
以上是从协议标准的角度来看待这个问题的。如果从浏览器的角度来看待这个问题,情况就有所不同。
考虑一下,如果把 XHTML 写得很不严格,浏览器会怎么做?是不是会弹出一个对话框,写着“这个网站的开发人员技术不过关,写的不是正宗的 XHTML 文件,咱不显示”?显然,如果浏览器做成这个样子,倒贴钱也是不会有人用的。
从浏览器的角度看待上面几个不同,大致是下面的测试结果(IE和Firefox我都测试过):
XHTML 要求正确嵌套:如果你没有嵌套,浏览器会试图帮你嵌套。
XHTML 所有元素必须关闭:如果你没有关闭,浏览器会试图帮你关闭。
XHTML 区分大小写:你非要写成大写,浏览器帮你转换成为小写。
属性值要用双引号:你非要不肯加,浏览器帮你加。
特殊字符的处理:You & Me 也好,You & Me 也好,浏览器都能读入。
用 id 属性代替 name 属性:你非要用 name 也可以。
如果你在文档开始用 DocType 指定为 XHTML 了,有一点需要注意。在给 Tag 用 class 指定CSS 的时候,是区分大小写的。例如,你定义了一个CSS如下,
<style>
.hello { ...... }
</style>
而你使用的时候写成,
<p class="Hello"> ......
那这个CSS是不会被使用的。要积极的看待这个问题,这让你可以用更多的名字来命名 Style,是一个好事。
XHTML 标准的前途
从标准制定者的初衷看,制定 XHTML 标准是试图把 HTML 规范成为严格的 XML 格式,这样无可避免的会导致一个结果,就是从 HTML 到 XHTML 的升级导致标准的容错能力降低了。把自己的网页源文件写得严格一点当然是好事,但是一个标准不可能去要求浏览器降低自己的容错能力。
XHTML 1.0 标准是兼容 HTML 4.01,是个不错的协议,可以让开发者在编写代码的同时通过一些工具来检查代码的合法性,虽然对于用户而言,制作出来的网页和 HTML 4.01 相比实在没有什么不同。对于你写新的网页来说,使用 XHTML 1.0 还是一个不错的选择。
XHTML 1.1 标准要求浏览器不再支持原先的容错能力,这是一个标准制定者走火入魔的典型例子,这个标准从学术上说非常纯净,但是对于浏览器而言,则是个呆板、笨拙、不可理喻的标准。所以目前所有由人类开发的浏览器都没有遵照所谓纯净的 XHTML 1.1的标准,你的代码只要浏览器能读懂,他都会很好的显示出来,而不跳出弹框报错。
从发展的趋势来看,一个标准没有浏览器服从,等于是没有意义的标准。从浏览器的实现角度来看,新的协议只能在原来 HTML 的基础上扩大能力增加容错,而不能缩小了能力减少容错。所以新的协议中,只有扩大能力增加容错的部分会被采纳,而其他部分都仅仅是纸上谈兵而已。
以下是 XHTML 相对 HTML 的几大区别:
XHTML 要求正确嵌套
XHTML 所有元素必须关闭
XHTML 区分大小写
XHTML 属性值要用双引号
XHTML 用 id 属性代替 name 属性
XHTML 特殊字符的处理
XHTML 要求正确嵌套
以下是正确的嵌套:
<p>布啦布啦<strong>独树一帜</strong>。</p>
以下是错误的嵌套:
<p>布啦布啦<strong>独树一帜</p></strong>。
XHTML 所有元素必须关闭
在 HTML 中,比如 <p>,<li> 这些标记,你可以不写 </p>,</li>,但是在 XHTML 里,必须要求写关闭标记 (Closing Tag)。
比如:
<p>布啦布啦很认真。
应该写成:
<p>布啦布啦很认真。</p>
处理空元素
有些空元素,在 XHTML 里的写法是在">"之前加空格和斜杠。比如<br>,应该写成<br />。
以下是空元素的例子:
<br />
<hr />
<img src = "/images/adpics/1/b027.jpg" alt = "blabla" />
<link rel="stylesheet" href="/styles/blabla.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
XHTML 区分大小写
HTML 不区分大小写,但是 XHTML 是区分大小写的。
XHTML 的所有标记和属性都要小写。
比如:
<IMG SRC = "/images/adpics/1/b027.jpg" Alt = "blabla" />
应该写成:
<img src = "/images/adpics/1/b027.jpg" alt = "blabla" />
XHTML 属性值要用双引号
HTML 并不强制要求属性值加双引号。比如你可以写:
<table cellspacing = 0>
<input checked>
但在 XHTML 里,应该写成:
<table cellspacing = "0">
<input checked = "checked" />
XHTML 用 id 属性代替 name 属性
HTML 很多元素,比如 a,applet,frame,iframe,img 和 map,有 name 属性。在 XHTML 里是要废除的,而用 id 属性取而代之。
比如:
<img src="blabla.gif" name="blabla logo" />
应该写成:
<img src="blabla.gif" id="blabla logo" />
XHTML 特殊字符的处理
& 应该在 XHTML 里应该写成 &。
比如:
You & Me
应该写成:
You & Me
还有如果内嵌 Javascript 代码,在 XHTML 里则应该写成:
<script type="text/javascript">//<![CDATA[
...
//]]></script>
浏览器的角度
以上是从协议标准的角度来看待这个问题的。如果从浏览器的角度来看待这个问题,情况就有所不同。
考虑一下,如果把 XHTML 写得很不严格,浏览器会怎么做?是不是会弹出一个对话框,写着“这个网站的开发人员技术不过关,写的不是正宗的 XHTML 文件,咱不显示”?显然,如果浏览器做成这个样子,倒贴钱也是不会有人用的。
从浏览器的角度看待上面几个不同,大致是下面的测试结果(IE和Firefox我都测试过):
XHTML 要求正确嵌套:如果你没有嵌套,浏览器会试图帮你嵌套。
XHTML 所有元素必须关闭:如果你没有关闭,浏览器会试图帮你关闭。
XHTML 区分大小写:你非要写成大写,浏览器帮你转换成为小写。
属性值要用双引号:你非要不肯加,浏览器帮你加。
特殊字符的处理:You & Me 也好,You & Me 也好,浏览器都能读入。
用 id 属性代替 name 属性:你非要用 name 也可以。
如果你在文档开始用 DocType 指定为 XHTML 了,有一点需要注意。在给 Tag 用 class 指定CSS 的时候,是区分大小写的。例如,你定义了一个CSS如下,
<style>
.hello { ...... }
</style>
而你使用的时候写成,
<p class="Hello"> ......
那这个CSS是不会被使用的。要积极的看待这个问题,这让你可以用更多的名字来命名 Style,是一个好事。
XHTML 标准的前途
从标准制定者的初衷看,制定 XHTML 标准是试图把 HTML 规范成为严格的 XML 格式,这样无可避免的会导致一个结果,就是从 HTML 到 XHTML 的升级导致标准的容错能力降低了。把自己的网页源文件写得严格一点当然是好事,但是一个标准不可能去要求浏览器降低自己的容错能力。
XHTML 1.0 标准是兼容 HTML 4.01,是个不错的协议,可以让开发者在编写代码的同时通过一些工具来检查代码的合法性,虽然对于用户而言,制作出来的网页和 HTML 4.01 相比实在没有什么不同。对于你写新的网页来说,使用 XHTML 1.0 还是一个不错的选择。
XHTML 1.1 标准要求浏览器不再支持原先的容错能力,这是一个标准制定者走火入魔的典型例子,这个标准从学术上说非常纯净,但是对于浏览器而言,则是个呆板、笨拙、不可理喻的标准。所以目前所有由人类开发的浏览器都没有遵照所谓纯净的 XHTML 1.1的标准,你的代码只要浏览器能读懂,他都会很好的显示出来,而不跳出弹框报错。
从发展的趋势来看,一个标准没有浏览器服从,等于是没有意义的标准。从浏览器的实现角度来看,新的协议只能在原来 HTML 的基础上扩大能力增加容错,而不能缩小了能力减少容错。所以新的协议中,只有扩大能力增加容错的部分会被采纳,而其他部分都仅仅是纸上谈兵而已。
发表评论
-
[html5]localStorage代替Cookie? HTML5本地存储安全性
2015-03-20 17:53 26386zccst转载 HTML5本地存储的前身就是Cookie,H ... -
[移动端]专用的meta
2015-03-04 15:31 8276作者:zccst <meta name=" ... -
[html5]触摸事件(touchstart、touchmove和touchend)
2015-02-13 20:28 29575作者:zccst 参考文章 ... -
meta name=viewport含义
2015-02-12 16:29 4062作者:zccst viewport中文 ... -
doctype和compatModel相关
2015-01-04 19:30 715作者:zccst 一、doctype 1,严格模式与混杂模 ... -
【转义字符】HTML 字符实体 < >: &等
2014-11-18 18:56 22989作者:zccst 2014-12-10 又 ... -
挖掘input type=file的新知识
2014-11-13 18:23 3108作者:zccst 文件上传,这个问题始终一知半解,今天又近真 ... -
div+css布局总结
2014-09-04 10:48 1430作者:zccst 3,position布局 #wrap ... -
文件上传的两种情况及mock时对应处理办法
2014-09-02 19:46 1720作者:zccst 1,给文件一个独立的url,要求文件上传至 ... -
attr与prop的区别
2014-07-09 18:20 967作者:zccst jQuery在1.6.1 ... -
HTML <label> 标签的 for 属性
2014-07-04 17:14 2070作者:zccst for 属性规定 label 与哪个表单元 ... -
设置frameset的高度
2014-01-26 13:22 2735zccst转载 原文: 这是使用frameset做的,在宽 ... -
天气接口API
2012-02-02 17:32 1348把下面代码粘贴到自己的页面里,就能显示天气了。 <if ... -
form表单深入理解
2011-11-23 20:12 2174作者:zccst form表单 一、表单基础 作用:用来向服 ... -
表单之input file的使用特点及在php.ini中的相关参数设置
2011-11-23 20:08 23441,控件 <input type= "fi ... -
文件编码
2011-07-04 18:35 1240今天第一次留意文件的编码格式。 改变方式:另存为时,可选择 ... -
html5新知识点
2011-05-12 22:53 1866作者:zccst 新技术 http://timelineap ... -
表单与ajax一并使用
2011-04-22 13:35 1198表单与ajax一并使用 一、表单需要注意的地方。 form ...
相关推荐
HTML(HyperText Markup Language)和XHTML(Extensible HyperText ...总的来说,了解HTML和XHTML的联系与区别,以及`<!DOCTYPE>`的作用,有助于开发者编写更规范、更兼容的网页代码,从而提高网页质量和用户体验。
HTML与XHTML的主要区别在于语法规则。XHTML要求更严格的编码实践,比如标签必须小写,所有标签必须闭合,属性值必须用引号包围等。这样的严格性有助于避免解析错误,并使内容更易于自动化处理和跨平台兼容。 在实际...
html5HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,现在仍处于发展阶段,但大部分浏览器已经支持某些 HTML5 技术。HTML 5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加...
HTML、XHTML和CSS是构建网页和Web应用程序的基础技术,它们是互联网的“语言”,用于创建和设计网页的结构、内容和样式。本篇文章将详细阐述这三个重要概念及其在网页开发中的应用。 **HTML(HyperText Markup ...
例如,`<HTML>`和`<html>`在HTML中被视为相同,但在XHTML中则不同。因此,在转换过程中需要确保所有的标签名称都是小写的。 #### 4. 属性值必须加引号 根据W3C的XHTML 1.0规范,每个属性值都应该用引号括起来,...
HTML(HyperText Markup Language)和XHTML(Extensible HyperText Markup Language)是互联网上创建和展示内容的标准标记语言。它们都是用于构建网页结构的关键技术,但XHTML比HTML更加严谨和规范。 HTML是一种...
HTML4.01和XHTML1.0是两种在网页设计中广泛使用的标记语言标准,它们为构建结构化的Web页面提供了规范。这两种语言都基于HTML(HyperText Markup Language),但XHTML结合了HTML的易用性和XML(Extensible Markup ...
HTML(HyperText Markup Language)和XHTML(Extensible HyperText Markup Language)都是用于创建网页的标准标记语言,但它们之间存在一些关键的区别。XHTML可以被视为HTML与XML的结合体,它引入了更严格的语法规则...
XHTML(Extensible HyperText Markup Language)是HTML和XML的结合体,它比HTML更严格,语法要求更加规范。XHTML强调正确关闭所有标签,避免使用空格和缩进来影响结构,这对于培养良好的编码习惯至关重要。 HFHTML_...
HTML与XHTML的主要区别在于语法的严格性。HTML较为宽松,允许一定程度的错误,而XHTML则要求更高的规范性。这使得XHTML在处理和解析时更加可靠,尤其是在XML工具和框架中。然而,对于初学者来说,XHTML的严格规则...
HTML(HyperText Markup Language)和XHTML(Extensible HyperText Markup Language)是互联网上构建网页内容的两种主要标记语言。本指南将深入探讨这两种语言的核心概念、语法结构以及它们在现代网页开发中的应用。...
HTML5和XHTML1.x之间的主要区别在于灵活性和兼容性。HTML5更注重易用性和浏览器支持,引入了新的元素和API,如`<canvas>`(画布)、`<video>`、`<audio>`和Geolocation API。XHTML1.x则强调规范和结构,更适合于需要...
XHTML(Extensible HyperText Markup Language)是HTML的一个扩展,它结合了HTML的易读性和XML的严谨性。XHTML通过要求每个标签都正确闭合,使得文档结构更加严格,这有助于自动化处理和解析。tidy工具就是用来帮助...
HTML,XHTML,and.CSS.Bible,5th.Edition.pdf (全) An essential update to the key web authoring standards of HTML, XHTML, and CSS The existence of Web pages depends on three vital technologies: HTML ...
《Head First HTML与CSS、XHTML(中文版)》是一本深入浅出介绍网页制作基础知识的书籍,适合初学者和有经验的开发者作为复习之用。这本书以生动、直观的方式讲解了HTML、CSS以及XHTML这三种在网页设计中至关重要的...