HTML和XHTML区别

HTML和XHTML

XHTML(eXtensible HyperText Markup Language,可扩展超文本标记语言)是将HTML(HyperText Markup Language,超文本标记语言)作为XML应用而重新定义的标准。

在HTML5标准中定义了两种语法(HTML 4.01XHTML 1)。在标准中可以通过定义一个特殊的DOCTYPE标签来XHTML,但是没有浏览器去实现这一标准。所以最后HTML5标准推翻了这个决定。

可以通过使用MIME类型(包含在HTTP请求中的Content-Type)来指示语法的选择:如果需要使用XHTML,MIME类型应该为application/xhtml+xml,如果为text/ html则不使用XHTML。

适当的MIME类型必须存在于HTTP请求中的Content-Type中。如果你只把MIME类型写在HTML标签中,如<meta http-equiv=…>,依然会被当作text/html执行。

HTML文档规范

HTTP/1.1 200 OK
Content-Type: text/html

<!DOCTYPE html>
<html lang=en>
  <head>
    <meta charset=utf-8>
    <title>HTML</title>
  </head>
  <body>
    <p>I am a HTML document</p>
  </body>
</html>

XHTML文档规范

HTTP/1.1 200 OK
Content-Type: application/xhtml+xml

<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>XHTML</title>
  </head>
  <body>
    <p>I am a XHTML document</p>
  </body>
</html>

XHTML兼容性

目前大多数浏览器都支持XHTML,其中包括Firefox、Chrome、Safari、Opera和IE浏览器(IE 9)。(Internet Explorer 8和旧浏览器在看到正确配置的XHTML MIME类型的XHTML文档时,会显示未知文件类型的下载对话框)。

需要注意的是,有许多流行的JavaScript库和开发工具对XHTML不支持。

XHTML和HTML的区别

XHTML是XML应用,所以XHTNL的代码规范要求要比HTML更严格。但对于习惯HTML的程序员有时可能会带来一些不便,如比较语句a<b中的<会被解析为一个标签,造成代码运行与预期不符。为了应对这些问题,慢慢有了以下的规范:

1.JavaScript中<&应包含在CDATA代码块中

在XHTML中JavaScript的闭合符不能在CDATA代码块以外的地方存在。如以下错误示例:

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

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

可以通过CDATA代码块的方式解决,如下例:

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

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

也有其他方法解决该问题,如将<替换为&lt;。但这样减低了代码可读性,所以不推荐使用。

2.注释<!—— ... ——> 中注释内容不能再包含双破折号——

在XHTML中,以<!—— ... ——>形式注释的内容不应包含双破折号——,如以下错误示例:

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

  for (i = 10; i > 0; --i)
  {
    sum += i;
  }
// -->
</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>

这是因为在旧浏览器版本中,内联样式和内联脚本还未普及,使用style和script标签不会被正常解析,而是直接把标签的内容输出。如下例:

<script>
  var i = 0;
  alert(i);
</script>

这段JS代码在旧浏览器版本中,不会执行,而是直接输出以下内容:

var i = 0;
alert(i);

不过,目前现代浏览器都已经开始支持内联样式和内联脚本,所以一般不采用这种写法。

参考文献

MDN —— Glossary XHTML

MDN —— Properly Using CSS and JavaScript in XHTML Documents

原文地址:https://www.cnblogs.com/limbobark/p/8910107.html

时间: 2024-08-08 19:25:05

HTML和XHTML区别的相关文章

HTML 和 XHTML 区别

1.初级改善 为页面添加正确的DOCTYPE 很多设计师和开发者都不知道什么是DOCTYPE,DOCTYPE有什么用. DOCTYPE是document type的简写.主要用来说明你用的XHTML或者HTML是什么版本. 浏览器根据你DOCTYPE定义的DTD(文档类型定义)来解释页面代码. 所以,如果你不注意设置了错误的DOCTYPE,结果会让你大吃一惊. XHTML1.0提供了三种DOCTYPE可选择:(1)过渡型(Transitional ) <!DOCTYPE html PUBLIC

HTML与XHTML区别比较

以下内容翻译自:http://reference.sitepoint.com/html/html-vs-xhtml 1.html大小写不敏感,XHTML敏感,只能用小写标签 2.html标签不一定要求闭合,但是XHTML标签必须闭合 在html中,下面有效:<p>This is my first paragraph.<p>This is my second paragraph.<p>And here's the last one.. 但在Xhtml中,必须改为:<

html与xhtml区别

XHTML1.0对HTML4.0的改进 (1)借鉴了XML的写法,语法更加严格 (2)把页面的内容和样式分离了:废弃了HTML4中的表示样式的标签和属性,推荐使用CSS来描述页面的样式 严格版(strict):(1)使用严格XML语法(2)禁用样式相关的标签和属性 过渡版(transitional):(1)使用严格的XML语法(2)允许使用废弃的样式相关标签和属性 HTML4.0中为了丰富显示效果,设计的很多标签和属性把页面的“内容”和“表现”混杂在一起:导致页面内容杂乱,不便于理解和修改.

html、XHTML、xml

html:超文本标记语言 XHTML:可扩展性超文本标记语言 xml:可扩展性标记语言 发展趋势:html——XHTML——xml html语法比较松散,这样对网页开发编写者来说,比较方便自由,但对机器而言,语言的语法越松散,处理起来就越困难,对于传统的计算机来说,还有能力兼容松散语法,但对于许多其他设备,比如手机,就很困难了.因此产生了有DTD(文档类型定义Document Type Definition是一套关于标记符的语法规则)定义规则,语法要求更严格的XHTML 区别: html 1.对

web前端开发工程师“想都不用想”的几个知识点

1.DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动.document.documentElement     返回文档的根节点<html> document.body     <body> document.activeElement 返回当前文档中被击活的标签节点(ie) event.fromElement        返回鼠标移出的源节点(ie) event.toElement       返回鼠标移入的源节点(ie) event.srcElement 

The first day of HTML

这是韩顺平老师的<轻松搞定网页设计(html.css.js)>,讲的还凑合,仅作入门.决定还是做好笔记,记录学习的过程,这是HTML的第一天. HTML(HyperText Mark-up Language)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言. HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字.图形.动画.声音.表格.链接等.HTML的结构包括头部(Head).主体(Body)两大部分,其中头部描述浏览器所需的

FE-learning 前端学习

github偶尔上不去,把学长给我们的学习资源转载在这里,同时记录下自己的学习感悟. Lesson 1:html 基本标签 Lesson 2: html语义化 html4 html5 xhtml区别 Lesson 3: html编码标准,百度教育页面html分析 Lesson 4:http://www.w3.org/Style/LieBos2e/enter/ http://www.w3.org/MarkUp/Guide/Style https://developer.mozilla.org/en

前端面试题 ---- html篇

一.html 1.html和xhtml区别 1. html:超文本标记语言,hyper text markup language      xhtml: 可拓展的超文本标记语言 extensible hyper text markup language 它是一种置标语言,表现方式和超文本标记语言html类似不过语法更加严格 2.  xhtml 所有标签必须小写 在XHTML中,所有的标签都必须小写,不能大小写穿插其中,也不能全部都是大写. 3.  xhtml 标签必须成对出现 像是<p>...

关于HTML、XHTML、CSS、XML的区别

1.HTML(Hyper Text Mark-up Language) HTML(Hyper Text Mark-up Language)即超文本标记语言或超文本链接标示语言,是为“网页创建和其他可在网页浏览器中看到的信息设计的一种标志语言”,也是构成网页文档的主要语言. 设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上.我们只需使用鼠标在某一文档中点取一个图标,Int