我正在尝试遵循xhtml 1.0严格标准,因为我正在创建我的网站。 现在,validator.w3.org遵循XHTML 1.0 Strict标准验证我的文档是有效的。这是一个代码示例:
<div style="color:#f00"><div style="color:#00f" />Text should be red and not blue</div>
不幸的是,Firefox,Chrome和Internet Explorer错误地解析了文档: 他们似乎都忽略了我的自闭标签的结束语(大多数是&lt; div /&gt;,&lt; li /&gt;和其他一些标签),从而使网站呈现错误,文字为蓝色。如果我替换&lt; div /&gt;标签包含&lt; div&gt;&lt; / div&gt;,一切都很好看。我读了它并根据xml文件,包括xhtml,可以自我关闭
以下是文档附带的重要标题信息:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
Apache2本身仍然发送Content-Type text / html,因为我还没有弄清楚如何覆盖.php mime类型,尽管&lt; head&gt;中的信息应该推翻这两种方式。
如何使用自动关闭标签,例如&lt; div /&gt;通过普通的浏览器正确解析它们吗?
答案 0 :(得分:0)
XHTML是使用XML的HTML,而HTML没有像您所示的自动关闭标签。这适用于XHTML但不适用于HTML,到目前为止,您不能用作application / xml + xhtml。
内容类型元标记不会影响服务器为页面提供服务的方式,仅供脱机使用。因此,您必须在服务器中设置它,或者使用PHP设置它。
答案 1 :(得分:0)
用php发送:
<?php
header('Content-Type: application/xhtml+xml;');
?>
这就是你如何使用PHP覆盖标准头文件。您必须要小心,因为header()
仅在尚未发送输出的情况下才有效。这意味着您不能在<?php
部分之前放置任何内容,标头将无法正常工作,因为您的服务器已经发送了标头和任何内容。