HTML5中对lang与xml:lang属性的解释
程序员文章站
2022-04-08 20:51:23
...
元素的lang(无命名空间的)属性用于定义元素的内容及其他文本属性的语言种类。
它的值必须是符合BCP 47规定范围内的一个语言标签。
当该属性设置成空字符串时,代表语言未知。
lang(在XML命令空间内的 xml:lang),就是XML标准里定义的。
如果一个元素没有定义lang属性,且其父元素有lang属性,它将继承。
任何html原书都可以设置lang(无命名空间的)属性。
lang(在XML命令空间内的)可以使用在XML文档中的HTML元素上。
如果一个元素既设置有命名空间的lang属性,又设置没有命名空间的lang属性,请确保两个属性的值一致。
请不要在html文档中使用带有xml命名空间的lang属性。
user agents解析元素的语言属性工作顺序是这样的:
当元素设置了lang属性,则以lang属性为准,否则将以最近的祖先元素的lang属性为准。
如果同时设置了xml命令空间的lang属性,与没有命名空间的lang属性,则以前者为准。
如果在其祖先中没有找到任何lang属性值,而在meta中设置了默认语言,则以此为准。
如果meta中也没有设置,会去查看htpp协议传输的内容(header)中的设置,如果htpp返回多种语言,视为无效,其效果相当于把lang属性设置成空字符串。
你也可以一个不符合标准的lang属性,用于其他服务,例如CSS选择器。