服务XHTML和自我
我正在尝试遵循xhtml 1.0严格标准,因为我正在创建我的网站。 现在,validator.w3.org按照XHTML 1.0严格标准验证我的文档是有效的。 这是一个代码示例:
<div style="color:#f00"><div style="color:#00f" />Text should be red and not blue</div>
不幸的是,Firefox,Chrome和Internet Explorer不正确地解析文档:它们似乎都忽略了我自闭标签的结束语(主要
, 和其他一些标签),从而导致网站显示错误,文本呈蓝色。 如果我更换 标签 ,一切都很美好。 我读过它,并根据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文本/ html,因为我还没有想出如何覆盖.php mime类型,尽管信息在
应该推翻这种方式。我如何使用自闭标签如
他们被普通浏览器正确解析?XHTML是使用XML的HTML,并且HTML不像您展示的那样具有自我关闭标签。 这适用于XHTML,但不适用于HTML,到目前为止,您并不是作为application / xml + xhtml服务的。
内容类型元标记不会影响服务器如何为页面提供服务,并且仅用于脱机使用。 所以你必须把它设置在服务器上或者用PHP来设置,就你而言。
用php发送:
<?php
header('Content-Type: application/xhtml+xml;');
?>
这就是你用PHP重写标准头文件的方法。 你必须小心,因为header()
只在没有输出被发送时才起作用。 这意味着你不能在<?php
部分之前放置任何东西,头文件将不起作用,因为你的服务器已经发送了头文件和任何内容。