为什么 XHTML 不能在带前缀的外部工作?
Why does XHTML not work outside with a prefix?
在我看来,这应该是一个有效的 XHTML 文档:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a:html xmlns:a="http://www.w3.org/1999/xhtml">
<a:head>
<a:title>Document title</a:title>
</a:head>
<a:body>
<a:h1>Hello World!</a:h1>
</a:body>
</a:html>
但是,Firefox 和 Internet Explorer 都没有像 XHTML 那样处理它,而是显示为文本(标签不可见)。如果我删除名称空间前缀...
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Document title</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
…渲染得很好。我本以为这两个文档在语义上是相同的。为什么第一个不行?
您必须确保浏览器获得将文档解释为 application/xhtml+xml
(或可能是其他 XML MIME types 之一)而不是 text/html
.[=17= 的提示]
在服务器上,您可以通过发送相应的Content-Type
HTTP header:
来实现
Content-Type: application/xhtml+xml
Locally,您通常可以通过使用 .xhtml
而不是 .html
作为文件扩展名来实现此目的(但这可能取决于您的系统)。
在我看来,这应该是一个有效的 XHTML 文档:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<a:html xmlns:a="http://www.w3.org/1999/xhtml">
<a:head>
<a:title>Document title</a:title>
</a:head>
<a:body>
<a:h1>Hello World!</a:h1>
</a:body>
</a:html>
但是,Firefox 和 Internet Explorer 都没有像 XHTML 那样处理它,而是显示为文本(标签不可见)。如果我删除名称空间前缀...
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Document title</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
…渲染得很好。我本以为这两个文档在语义上是相同的。为什么第一个不行?
您必须确保浏览器获得将文档解释为 application/xhtml+xml
(或可能是其他 XML MIME types 之一)而不是 text/html
.[=17= 的提示]
在服务器上,您可以通过发送相应的Content-Type
HTTP header:
Content-Type: application/xhtml+xml
Locally,您通常可以通过使用 .xhtml
而不是 .html
作为文件扩展名来实现此目的(但这可能取决于您的系统)。