首页 > 解决方案 > Del 标记在自闭段落中不正确

问题描述

在下面的 html 代码中 del 标记删除线下一个标记:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
	<div>
		<del><p /></del>
		<strong>Why is this text marked strikethrough?</strong>
	</div>
</body>
</html>

如何解决这个问题?

修复 1:此问题发生在本地 .html 文件中。将文件重命名为 .xhtml 可解决此问题。

Fix2:在服务器端可以从网络服务器返回正确的内容类型。

标签: html

解决方案


您正在为您的 XHTML 文档提供服务,text/html因此浏览器将根据 HTML 解析规则对其进行解析。

/in将<p />被视为错误并丢弃,进一步的错误恢复会将 strong 元素放入段落中。

您需要为 XHTML 提供application/xhtml+xml内容类型的 HTTP 响应标头,以便浏览器正确解析它。


XHTML 或多或少已经死了,尤其是在浏览器中使用客户端。改为编写 HTML 5。


推荐阅读