我必须严格使用 XHTML1.0 来制作此页面。我现在尝试了几个小时来获得像这样的输入标签
<input type="text" />
。在 Firefox 和 Chrome 的开发者控制台中,它会踢出斜线。
index.php 文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" media="screen" href="css/default.css">
</head>
<body>
<? include "form.php"; ?>
</body>
</html>
相关的 PHP 代码(这是我最后一次也是最简单的测试,因为我会开始思考发疯!!):
$inputTagStart = htmlspecialchars_decode('<input name="test" value="andso" />');
Chrome 中的输出(FF 中相同)
<input name="test" value="andso">
..以及其他一些版本...
$inputTagStart = htmlspecialchars_decode("<label for='".$data['Label']."'>".$data['Label']."</label><input type='text' name='".$data['Label']."' value='".returnPostedTextData($data['Label'], $data['Default'])."' ".$classRequired." />", ENT_XHTML);
在 Chrome 中输出 未创建输入标记
$inputTagStart = htmlspecialchars_decode("<label for='dsf'>df</label><input type='text' name='dsf' value='s'/>");
在 Chrome 中输出
<input type="text" name="dsf" value="s">
请帮忙,我不明白
最佳答案
浏览器的开发者控制台不会向您显示页面的实际源代码(使用“查看源代码”):它向您显示浏览器对页面内容的解释,由 javascript 修改(它还会显示浏览器对无效 HTML 的最佳猜测修复。
如果您输出没有 XHTML header 的 XHTML,浏览器只会将其解释为稍微奇怪的 HTML,进行相应的解释,并在开发者控制台中显示该解释。
- 如果您想查看页面的实际 XHTML 源代码,请使用“查看源代码”选项。
- 如果您想在开发者控制台中查看 XHTML,请确保输出 header
Content-Type: application/xhtml+xml
。
关于PHP XHTML 自关闭输入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16091077/