lang作为HTML标签的全局属性,可以帮助定义元素的语言。该属性包含一个“语言标签”,格式为“识别语言的标签(BCP47)”中定义的格式。
<html lang="en"> 向搜索引擎表示该页面是html语言,并且语言为英文网站,其"lang"的意思就是“language”,语言的意思,而“en”即表示english 你的页面如果是中文页面,可将其改为 <html lang="zh"> zh即表示中文.【zh为宏表达方式,没有准确性。应该按BCP47标准表达方式】
其一:主要是给搜索引擎看的,搜索引擎不会去判断该站点是中文站还是英文站,所以这句话就是让搜索引擎知道,你的站点是中文站,对html页面本身不会有影响。
其二:主要是发送给服务器的页头等信息保函语言元素。如果不匹配会将导致服务器解析异常。
宏语言 「zh」中文包含多种语言。出于兼容性的原因,这些语言每一个在「注册表」中都有一个主要语言子标签和一个方言子标签。其中几个例子包含赣语「gan」、粤语「yue」和普通话「cmn」,这些都包含于宏语言 「zh」中文之中,所以它们在「注册表」中都有前缀『zh』。因此赣语的标签以『zh-gan』或『gan』开头、粤语的以『zh-yue』或『yue』开头、普通话的以『zh-cmn』或『cmn』开头。即便不使用方言子标签,「zh」仍然可以用来标记一些未指定种类的中文。
优先选择主要语言标签「gan」「yue」「cmn」替代方言形式的「zh-gan」「zh-yue」「zh-cmn」。
注:此段从兼容性和语言学角度均存在争议。但是在2009年已经废弃cmn表示。
1、简体中文国语页面:html lang=zh-cmn-Hans 2005年加入标准,2009年废弃。新标准为:cmn-Hans
2、繁体中文国语页面:html lang=zh-cmn-Hant 2005年加入标准,2009年废弃。新标准为:cmn-Hant
。。。。。。
当然,由于历史原因,有时候不得不继续使用zh-CN。比如中文维基百科,沿用了传统的zh-CN/zh-HK/zh-SG/zh-TW(按照标准应该使用 zh-Hans-CN、zh-Hant-HK、zh-Hans-SG、zh-Hant-TW)。这时候,合理的软件行为,是将 zh-CN 等转化为 zh-Hans(即转化为最常见的误用所对应的实际标准写法)。一些后端服务器依旧使用zh-CN,比如Apache服务器。
实际上,各相关标准,也存在一定的滞后。例如CSS的:lang选择器,不支持选择仅仅简体/繁体中文(而不管是cmn或是yue或是min等汉语方言)。理想情况是CSS3对:lang选择器的语法进行升级,即BCP 47中的高级匹配算法,支持 :lang(*-Hans)这样的写法。
CSDN的写法依旧是:<html lang="zh-CN">
百度、新浪、网易等均为加入此标签。
zh-Hans-CN去表示:中国大陆的简体中文=中华人民共和国的简体中文==Chinese Mandarin(Simplified)==PRCChinese Mainland in simplified。当然:如果考虑到其他的兼容性,其实也还是可以暂时继续使用:zh-CN的写法的。