为何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
相关产品推荐
相关产品推荐

