也许我是个白痴,但我不太清楚我的HTML标题中使用XHTML和HTML5。这仍然很好,我们只是添加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>
还是什么?
然后在A List Apart他们说:
如果您使用XHTML 5,请记住您的服务器必须提供MIME类型为application / xhtml + xml或text / xml的文档。
请向我解释,好像我是傻瓜:)这在实际意义上意味着什么? “交付文件”?含义html? php会发生什么?以这种方式设置Web服务器需要哪些步骤?
答案 0 :(得分:3)
要正确提供HTML5文档,您不必执行任何异常操作。服务器默认为适合HTML5的内容类型。只需使用以下命令启动您的文档:
<!DOCTYPE html>
<meta charset=UTF-8>
(meta不是绝对必要的,但使用它是个好主意,否则你可能会得到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具有更好的兼容性。
答案 1 :(得分: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。 HTML格式的HTML必须使用application / xml + html mime-type进行处理,该类型仅适用于XHTML 1.1和XHTML 5.
SGML表单和XML表单之间的最大区别是邋。。 SGML表单本质上是一个文本文档,通常被认为是标记汤,其中验证通常是无关紧要的,浏览器会尽力做到最好。在XML格式中,代码中任何位置的任何错误都将导致文档在用户代理处失败并向屏幕抛出错误,就像任何其他编程语言一样。在这种情况下,HTML形式的HTML被视为一种应用程序,其中代码被评估为与仅仅是字符的平面文本文档相对应的处理。
使用SGML表格的优点是完全无能和无知技术是完全可以容忍的。如果浏览器处理代码,那么无论多么无效,代码都足够好。其缺点在于,体验仅限于浏览器可以直观地处理给最终用户的内容,这意味着协助技术处于严重劣势。 XML表单的优点,特别是如果使用模式而不是doctype定义,则该文档就像一个应用程序,它本身就是自我意识到自己的结构及其功能。它始终有效或失败,这意味着代码在语法上始终是统一的,这使得辅助技术的集成变得简单实用。 XML表单的缺点是无能和懒惰的作者无法发布正常工作的文档。就个人而言,我并不认为这是一个不利因素,因为它对任何其他形式的计算绝对是一种极小的期望。
答案 2 :(得分:1)
HTML5 / XHTML5的文档类型为:<!DOCTYPE html>
&amp;在XHTML 5中,您需要指定名称空间<html xmlns="http://www.w3.org/1999/xhtml">
。
Content type can be set in meta tag,就像在任何其他html / xhtml文档中一样,使用内容属性,例如
<meta content="text/html">
就标题而言,建议将text/html
用于HTML5 [和任何其他HTML] :(。html,.htm)或application/xhtml+xml, application/xml
用于XHTML5 [or any other XHTML]: .xhtml, .xht, .xml
。< / p>
如果服务器没有自动检测正确的内容类型并按其设置它(您可以使用Firebug中的Net面板检查响应标头),可以使用header功能在php中设置它,像这样:
header("Content-Type: text/html");
您还可以negotiate content on Apache服务器。
以下是(X)HTL5中的WHATWG Wiki says on mime types:
必须提供XHTML序列化 使用XML MIME类型,例如 application / xhtml + xml或 应用程序/ XML。与XHTML1,XHTML5不同 不得作为text / html提供。
使用不正确的MIME类型 (text / html)对于XHTML会导致 根据要解析的文档 解析HTML的要求。在 换句话说,它将被视为标签 汤。确保使用XML MIME type是确保这一点的唯一方法 浏览器将文档作为XML处理。
对于某些主题的轻读,您应该查看Wikipedia entry on HTML5以获取更多详细信息,以及WHATWG FAQ。如果您更喜欢阅读重读,请转到HTML 5 last draft standard。
最后,现在您应该查看HTML和XHTML之间的few more differences。
祝你好运!答案 3 :(得分:1)
我总是说,迟到总比没有好。以下是我在寻找回答时的答案:
...当从服务器作为'application / xhtml + xml'服务时,会告诉浏览器它应该使用xhtml而不仅仅是html来解析页面。
答案 4 :(得分:0)
我认为如果它还没有设置,你可以使用apache的AddType指令:
http://httpd.apache.org/docs/1.3/mod/mod_mime.html#addtype:
“AddType指令将给定的文件扩展名映射到指定的内容类型。” - 所以你可以根据需要添加.php处理程序,.html,.shtml等。
答案 5 :(得分: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类型'applicaton / xhtml + xml'?