2009-09-03 49 views
0

也许我是一个白痴,但我不太明白我的HTML标题中使用XHTML w/HTML5。这是还是不错的,我们只是添加HTML5标签?:如何设置您的Web服务器和文档的HTML以正确提供HTML5文档?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html dir="ltr" lang="eng" xmlns="http://www.w3.org/1999/xhtml"> 

或者是<!DOCTYPE html>还是什么?

然后在列表除了他们说:

如果你用XHTML 5去,记住,你的服务器必须有一个MIME类型是application/xhtml + xml或text/xml文件传送的文件。

请向我解释,好像我是愚蠢的:)这是什么意思在实际意义上? “交付文件”?含义html? PHP会发生什么?以这种方式设置您的Web服务器需要哪些步骤?

+1

顺便说一下:lang =“en”,而不是lang =“eng”。 – Ms2ger 2009-09-11 09:02:12

+0

这是一个巨大的帮助: http://diveintohtml5.org/semantics.html – joedevon 2009-11-01 22:27:27

+1

@joedevon该链接不再有效,而应该是http://diveintohtml5.info/semantics.html – Chris 2012-05-16 11:18:32

回答

1

HTML5/XHTML5的文件类型是:<!DOCTYPE html> &在XHTML 5中,您需要指定名称空间<html xmlns="http://www.w3.org/1999/xhtml">

Content type can be set in meta tag,正如任何其他HTML/XHTML文档中,使用内容属性,像

<meta content="text/html"> 

至于头而言,它是recomended使用text/html为HTML5 [和任何其他HTML]: (.html,.htm)或application/xhtml+xml, application/xml代替XHTML5 [or any other XHTML]: .xhtml, .xht, .xml

如果服务器没有自动检测到正确的内容类型,并设置它,因为它应该(可以使用网络面板Firebug检查响应头),它可以在PHP中设置,使用header功能,像这样:

header("Content-Type: text/html"); 

您也可以negotiate content on Apache服务器。

以下是WHATWG Wiki says on mime types在(X)HTL5:

的XHTML序列化必须使用XML MIME类型来服务 ,如 应用/ XHTML + xml或 应用/ XML。与XHTML1不同,XHTML5 不得作为text/html提供。

使用对XHTML不正确的MIME类型 (text/html的)将导致 文档根据用于HTML 解析需求进行解析。在 换句话说,它将被视为标签 汤。确保使用XML MIME 类型是确保 浏览器将文档作为XML处理的唯一方法。

有关问题的一些闲书,你应该检查Wikipedia entry on HTML5更多细节,以及WHATWG FAQ。如果您喜欢重读,请致电HTML 5 last draft standard

最后,现在有few more differences之间的HTML和XHTML你应该检查出来。

祝你好运!

+1

没有意义。您可能想要引用,它用于声明文档的编码。 – Ms2ger 2009-09-11 09:01:38

+1

虽然charset应该被引用以设置文档编码,但meta内容是html5标准,就像它在所有其他html/xhtml标准中一样。它用于定义文档的MIME类型。 – Krule 2009-09-13 19:24:18

1

XHTML5标准还没有写入,所以想要你想要的是不可实现的。另外,HTML5和XHTML 1.0是HTML不同的无关标准。

mime-type告诉用户代理如何处理当前资源。这与doctype声明不同,它告诉用户代理当前资源的定义是什么。基于SGML的HTML的MIME类型是text/html。 SGML格式的HTML包括:HTML 4,HTML 5,XHTML 1.0以及所有早期版本的HTML。必须使用仅适用于XHTML 1.1和XHTML 5的application/xml + html mime类型来处理HTML的XML格式。

SGML表单和XML表单之间最大的区别在于流畅性。 SGML表单本质上是一个文本文档,通常被认为是标签汤,验证通常是无关紧要的,浏览器尽力做到最好。在XML表单中,任何代码中的任何错误都会导致文档在用户代理处失败,并向屏幕抛出错误,就像其他编程语言一样。在这种情况下,HTML的XML形式被视为一种应用程序,其中的代码被评估用于处理而不仅仅是一个平面文本的文字文档。

使用SGML表单的优点是完全无能和无知的技术是完全可以接受的。如果浏览器处理代码,那么无论多么无效,代码都足够好。这样做的缺点是,体验仅限于浏览器可视化处理给最终用户的情况,这意味着协助技术处于严重劣势。 XML表单的优点,尤其是如果使用模式而不是doctype定义的,XML文档的作用就像是一个应用程序,它本身就能够自我意识到自己的结构及其功能。它总是有效的或失败的,这意味着代码总是在语法上统一,这使得辅助技术的集成变得简单和实用。 XML表单的缺点是无能和懒惰的作者不能发布正确工作的文档。就我个人而言,我并不认为这是一个劣势,因为它对任何其他形式的计算绝对是其他方面的最低期望。

+0

XHTML5是HTML5的一部分。另外,“SGML表单”是一个寓言,只有一个“HTML序列化”。 – Ms2ger 2009-09-11 08:59:37

+0

HTML序列化是SGML格式。 XHTML5不是HTML5的一部分。 XHTML5旨在成为HTML5的XML语法兼容形式。您可能需要阅读有关SGML和XML的内容。 – 2009-09-11 12:53:05

+0

@austin:HTML5显式不是SGML。在HTML5规范中将XHTML5定义为HTML5的XML序列化。 – Kornel 2009-10-25 21:41:42

3

要正确提供HTML5文档,您不必执行任何异常操作。服务器默认为适合HTML5的内容类型。只是启动文件:

<!DOCTYPE html> 
<meta charset=UTF-8> 

(元是不是绝对必要的,但它的使用是一个好主意,否则你可能会得到的Windows 1250编码或更坏的东西)。

只有服务X HTML5需要额外的箍环才能跳过。您必须发送Content-Type: application/xhtml+xml标题。有没有办法做任何形式的文档DOCTYPE或<meta>。它绝对必须是超出文档的HTTP标头。如何做到这一点取决于你使用的服务器/语言。在PHP中,你会怎么做:

header("Content-Type:application/xhtml+xml;charset=UTF-8"); 

然而,你可能不希望这样做,因为IE根本不会支持XHTML5 。坚持HTML5,与传统UA有更好的兼容性。

0

我仍然试图将这个xHTML5的东西放在一起后,谷歌搜索。所以,使用这样的:

<!DOCTYPE html> 
<html lang="en"> 
<head> 

<meta charset="utf-8" ?> 

...用此头正确时:

标题( “内容类型:应用/ XHTML + xml的;字符集= UTF-8”);

...从服务器。或者应该是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 

...真正的XHTML5担任MIME类型 '的一个应用/ xhtml + xml'?

+0

这是一个单独的问题? – SnareChops 2012-12-21 05:57:50

1

迟到比晚上好,我总是说。这是我一直在寻找归途的回答时:

...当作为服务“应用程序/ xhtml + xml”从服务器,会告诉它应该解析网页浏览器用作xhtml而不仅仅是html。

相关问题