从 HTML 到 XHTML

2018年11月5日05:19:06 发表评论

这个页面已经过时了

自从HTML5引入以来,WordPress和大多数主题支持HTML5。XHTML被认为是过时的。

什么是什么,什么不是XHTML

作为一个系统,WordPress是基于XHTML脚本语言编写的文档。XHTML 1(它是目前最广泛支持的版本,代表可扩展超文本标记语言)在2000年成为W3C推荐,并打算作为一种过渡技术直到XHTML 2最终确定。八年后XHTML 2还没有完成。因此,该文档仅使用XHTML短语来引用XHTML 1。

XHTML与HTML非常相似,因为它们都是一种叫做SGML的语言的后裔。然而,XHTML也是从XML派生出来的,XML是一种比HTML更严格的语法规则的脚本语言,XHTML继承了其中的一些规则。XHTML主要通过使用新的MIME类型和添加一些新的语法规则来区别于HTML。

为什么要使用XHTML

WordPress从其所有内部函数打印XHTML,因此所有主题现在都在XHTML中,大多数插件也是如此。所以,如果你想使用WordPress,你应该向下弯曲并学习一些XHTML,因为这是它现在所在的地方。

XHTML与HTML的区别

如果你熟悉HTML,你会很高兴知道你所知道的HTML中的大多数在XHTML中仍然是相关的。主要的区别在于XHTML迫使网页作者更加一致并编写更清晰的代码。有一些语法和语法上的差异,一些HTML标签已经被删除了,真的,就是这样。如果你知道HTML,那么你会惊讶于切换到XHTML是多么的容易,而且新的XHTML规则也会迫使你成为一个更好的程序员!

那么我如何编写XHTML呢?

这是XHTML的重要需求和它与HTML之间的区别的快速检查表。这不是一个全面的XHTML语言参考。请看这里。

在这些示例中,为了清晰起见,有些代码已被省略。

所有的标签、属性和值都必须用小写来写。

正确的:

<a href="www.kilroyjames.co.uk" >
Wrong:
<A HREF="www.kilroyjames.co.uk" >

所有属性值必须在引号内。

正确的:

<a href="www.kilroyjames.co.uk">

错误:

<a href =www.kilroyjames.co.uk>

所有的标签必须在嵌套

右:

<em>this emphasis just keeps getting <strong>stronger and stronger</strong></em>

错误:

<em>this emphasis just keeps getting <strong>stronger and stronger</em></strong>

所有XHTML文档必须携带DOCTYPE定义

DOCTYPE是一段看起来很吓人的代码,必须出现在每个XHTML文档的开头,它告诉浏览器如何呈现文档。

DOCTYPE标签的规则:

它必须是文档中的第一个标签。

DOCTYPE实际上不是XHTML文档的一部分,所以不要添加关闭斜线。

它应该指向一个有效的定义文件,称为DTD,它告诉浏览器如何读取文档。

您必须正确地编写DOCTYPE标记,否则您的文档将爆炸*(成为称为“标记汤”的HTML小块)并且不可验证。

我当然是非常严肃的…

有三种类型的有效XHTML 1文档:严格的、过渡性的和框架集。如果可以使用“Strict”来验证文档,那么可以这样做,不过Strict中不允许使用某些遗留标记和属性,因此可以使用“.tion”代替。

注意:让WordPress验证为Strict可能会有问题,因为从2.6.2版本开始,一些内部生成的<form>元素仍然使用“name”属性,在Strict DTD中不允许使用。

还要注意,使用过渡DTD将大多数浏览器排除在“标准”模式之外。当浏览器不在标准模式下时,让你的网页在不同浏览器上看起来一致是非常棘手的。我不打算解释DOCTYPE标签的细节,因为它变得越来越复杂,只知道最好的结果,你应该使用下面的一个,最好是第一个(严格):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

HTML标签必须包含XMLNS属性

您不需要理解“XML命名空间”属性,除非知道它在所有XHTML文档中都是必需的。下面是如何编写它的一个例子:

<html xmlns="http://www.w3.org/1999/xhtml">

文档必须正确地形成HTML、头、标题和体标签。

在HTML中,可以编写一个不包含上面标签的网页;在XHTML中它不是。必须包含上面的标签,并且它们必须嵌套并正确地排序,如下所示(DOCTYPE已被省略):

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title></title>
 </head>
 
 <body>
  <p>   
    See how the TITLE must be placed in the document HEAD – the TITLE is considered 
to be a "required child" element of the HEAD.
 Notice that the HEAD must also appear before the document BODY. 
Notice also how both the HEAD and the BODY must be contained
 within the HTML tag. Again, HEAD and BODY are "required child"
 elements of the HTML tag. Finally, notice that this text is 
written within a <p>paragraph</p> tag; in XHTML you may 
not write text directly in the BODY tag without using a suitable 
container tag, such as <p> or <div>.
  </p>
 </body>
</html>

所有标签必须关闭,甚至单个标签

<p>Mary had a little lamb
<p>It's fleece was white as snow

在XHTML中,甚至必须关闭单个标签——绝对没有标签可以被打开。

<p>Mary had a little lamb</p>
<p>It's fleece was white as snow</p>

因此,上述示例是错误的,因为<BR>标签没有关闭。要关闭像<br>和<hr>这样的单个标记,您只需在最后括号之前添加一个正斜杠,比如:<br/>和<hr/>(空格是可选的)。为了纠正上面的例子,我们会写:

<p>
 Mary had a little lamb <br>
 It's fleece was white as snow
</p>

这是正确的XHTML。

属性最小化是不允许的

在HTML中,属性可以像关键字一样串在一起,即<dl compact>,这称为属性最小化。在不允许的XHTML中,属性和值必须是显式的,即。

<p>
 Mary had a little lamb <br />
 It's fleece was white as snow
</p>

ID和名称属性

<dl compact="compact">

在HTML中,使用ID和名称属性互换是合法的。在XHTML中,名称属性被正式弃用,不能使用。在所有您想使用name属性的情况下,现在必须使用ID。例如

正确的HTML

<input type="submit" name="s" value=" Search " >

现在正确的XHTML版本

<input type="submit" id="s" value=" Search " />

风格都在你的头脑中

XHTML不允许在文档正文中进行样式声明,而必须将它们放在文档头中。

实体引用

将所有的文字写为ANP;或者它们将被假定为实体引用的一部分。例如,Reg是符号®的实体引用。因此,M&S是无效的XHTML,因为& S不是实体引用,您必须将其写入M和S。

结论

正如前面提到的,这不是一个全面的参考,但是它应该足够快速地启动和运行XHTML。祝你好运!

XHTML问题

大多数人没有意识到,要正确使用XHTML,必须使用新的MIME类型“应用程序/XHTML+XML”来服务。MIME类型仅仅是Web服务器向浏览器发送的一种描述,告诉它什么样的文档即将到来。例如,JPG图像是用MIME类型的“图像/JPEG”和带有MIME类型的“文本/HTML”的HTML文档发送的。发送具有MIME类型“text/html”的XHTML文档将导致文档被解析和验证为HTML,而不是您无疑希望的XHTML。如果您想使用XHTML,则必须使用正确的MIME类型,否则您只需使用非标准HTML。为了避免这个问题和输出符合标准的代码,你可以使用XHTML到HTML WordPress插件。

HTML5

因为XHTML的发展似乎是难以解决的问题(主要是XHTML 2与以前版本的XHTML和HTML以及MIME类型问题不兼容),这是一个由Mozilla(Firefox)、苹果(Safari)、Opera、微软(Internet Explorer)和一些OTE支持的竞争标准。ER关键的互联网播放器已成为新的宠儿,成功的旧的HTML 4.01标准。

HTML5在2008年1月通过W3C作为工作草案,并在2012年12月成为候选人推荐。

weinxin
我的微信
这是我的微信扫一扫