提供XHTML和自动关闭标签

时间:2011-12-27 14:21:01

标签: xml xhtml content-type

我正在尝试遵循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;通过普通的浏览器正确解析它们吗?

2 个答案:

答案 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部分之前放置任何内容,标头将无法正常工作,因为您的服务器已经发送了标头和任何内容。