html - 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:在服务器端可以从网络服务器返回正确的内容类型。
解决方案
您正在为您的 XHTML 文档提供服务,text/html
因此浏览器将根据 HTML 解析规则对其进行解析。
/
in将<p />
被视为错误并丢弃,进一步的错误恢复会将 strong 元素放入段落中。
您需要为 XHTML 提供application/xhtml+xml
内容类型的 HTTP 响应标头,以便浏览器正确解析它。
XHTML 或多或少已经死了,尤其是在浏览器中使用客户端。改为编写 HTML 5。
推荐阅读
- angular - 以角度将对象数组从一个嵌套组件传递到另一个组件?
- php - v-for vueJS 条件 v-if
- php - 检查两个数组是否具有相似的键并打印第二个数组的值,如果它们不匹配则跳转一个单元格
- c# - 绑定到 linq 连接时的 xaml 数据网格问题
- google-cloud-platform - GCP - 启用外部身份提供程序
- java - 除非我在应用信息设置中手动授予它的权限,否则通知声音不起作用
- docusignapi - DocuSign API JAVA - 如何以编程方式填写每个签名者的字段公司和标题
- c# - DisplayAttribute:无法检索属性“名称”,因为本地化失败
- php - 我想要内容旋转的所有结果 - 已解决
- webpack - 压缩发生在 __WB_MANIFEST 注入之前