You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PhpStorm中XHTML 1.1的html标签不允许lang属性?

XHTML 1.1 中 <html> 标签 lang 属性的矛盾提示解决办法

问题根源

你遇到的是PhpStorm检测规则与XHTML 1.1规范不匹配的问题:

  • XHTML 1.1是严格的XML应用,它的DTD里没有给<html>元素定义lang属性,该属性被移至<body>元素;同时XML标准的语言属性是xml:lang,可用于<html>标签。
  • PhpStorm最初的提示可能套用了HTML5规则(HTML5允许<html>加lang),自动插入lang="it"后,又触发XHTML1.1的DTD校验,因此报错“Attribute lang is not allowed here”。

正确写法

按照XHTML 1.1规范,正确代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>My Project</title>
</head>
<body lang="it">
</body>
</html>
  • <html>标签使用xml:lang属性,符合XML规范及XHTML1.1要求
  • <body>标签添加lang属性是为兼容不支持XML属性的旧浏览器,属于可选但推荐的做法

调整PhpStorm配置避免误提示

  • 打开Settings(Windows/Linux:File→Settings;Mac:PhpStorm→Settings)
  • 进入Languages & Frameworks→HTML
  • 在Default HTML file type下拉菜单选择XHTML 1.1
  • 确认DTD列表选中XHTML 1.1的DTD后保存配置

调整后IDE校验规则会严格遵循XHTML1.1标准,不会再出现矛盾提示。

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 17:33:09