lang属性不区分美式/英式英语拼写或语法,仅标识目标用户地区;正确写法为en-US、en-GB(连字符连接,地区码大写),错误写法如en-us、en_US、english均无效。

lang属性本身不区分美式/英式英语
HTML 的 lang 属性只识别语言(如 en)和可选的地区子标签(如 US 或 GB),但**不定义拼写、发音或语法风格**。浏览器、屏幕阅读器或搜索引擎不会因为写了 lang="en-US" 就自动把 “color” 渲染成美式拼写,也不会因为 lang="en-GB" 就强制校验 “favour” 是否出现。它只是告诉系统:“这段文本主要面向美国/英国地区的英语使用者”。
正确写法是 en-US 和 en-GB,不是 en-us 或 en-gb
BCP 47 标准规定:语言子标签必须用连字符(-)连接,且地区码必须大写。常见错误包括:
- 写成
lang="en-us"—— 地区码小写,不符合规范,部分旧版 Safari 或辅助技术可能忽略或降级处理 - 写成
lang="en_US"—— 下划线非法,HTTPAccept-Language头、JavaLocale等场景可能解析失败 - 写成
lang="english"或lang="en-USA"—— 非标准代码,浏览器会当作无效值,退化为lang="en"
正确示例:<html lang="en-GB">、<p lang="en-US">This is a truck.</p>
美式/英式差异得靠内容本身,不是 lang 属性
如果你需要在页面中明确体现拼写或术语差异(比如文档需同时展示两种变体),lang 可用于局部标注,配合 CSS 或 JS 做样式/行为区分:
立即学习“前端免费学习笔记(深入)”;
- 用不同
lang值包裹对应文本:<span lang="en-US">color</span> / <span lang="en-GB">colour</span> - CSS 中可用属性选择器做微调:
[lang="en-GB"] { font-family: "Georgia", serif; }(仅作示意,非语义用途) - 不要指望
lang触发自动翻译或拼写转换 —— 浏览器不提供该能力,需自行维护词表或调用 i18n 库
容易被忽略的兼容性细节
某些老系统(如 IE11、部分嵌入式 WebView)对 en-001(国际英语)、en-150(欧洲英语)等扩展子标签支持极差,建议只用最简组合:en-US、en-GB、en-AU。另外,lang 值大小写敏感,EN-us 和 en-US 被视为不同值 —— 实际项目中应统一转为小写语言码 + 大写地区码。



















