您的位置:首页 > Web前端 > HTML

为什么使用语言属性lang?

2016-04-28 19:54 751 查看
发现在用Sublime Text3自动补全的HTML文件中都有一个属性lang

<html lang="zh-CN">


可以理解,这是规定页面内容的语言为中文,同样的还有英文的

<html lang="en">


但是这个除了标准化之外,还有什么作用?不注明的时候同样默认是中文,不写的影响有什么?

经过一番谷歌,先贴出W3C中的一篇文章《为什么使用语言属性?》

https://www.w3.org/International/questions/qa-lang-why

里面讲得很详细

大概就是

语言属性允许你根据语言调整内容样式。更多用法请看使用 lang 属性样式化

可以为不同的语言设置不同的样式,比如字距行距什么的

2.字体选择

为不同的语言选择不同的字体(事实上在一些浏览器中简体和繁体的显示效果就不一样)

3.搜索

虽然主流搜索引擎一般都使用自动语言检测来鉴定资源的语言,但页面内部的标记可以基于用户的语言偏好改进搜索结果的质量。

4.翻译

翻译工具的依据是lang属性,就像设置lang=”en”的时候chrome浏览器会显示翻译的按钮。添加lang属性有助于翻译优化

.

5.非文本阅读器

.

6.分析器与脚本

注意:

单一的 zh 和 zh-CN 都是废弃用法,不推荐使用

应该去掉 zh- 前缀并使用 cmn、wuu、yue、gan ….

在知乎中有关于这个用法的问题

网页头部的声明应该是用 lang=”zh” 还是 lang=”zh-cn”?

以下两种写法均正确,后者描述更精准,但目前浏览器和操作系统都只支持前者,使用新标准可能会造成无法匹配浏览器用户定义字体、网页翻译、程序语言自动切换等功能,前端和码农为了兼容性推荐使用前者:

zh-CN 中文 (简体, 中国大陆) 对应 cmn-Hans-CN 普通话 (简体, 中国大陆)

zh-SG 中文 (简体, 新加坡) 对应 cmn-Hans-SG 普通话 (简体, 新加坡)

zh-HK 中文 (繁体, 香港) 对应 cmn-Hant-HK 普通话 (繁体, 香港)

zh-MO 中文 (繁体, 澳门) 对应 cmn-Hant-MO 普通话 (繁体, 澳门)

zh-TW 中文 (繁体, 台湾) 对应 cmn-Hant-TW 普通话 (繁体, 台湾)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  html w3c 语言 标准