为什么使用语言属性lang?

发现在用Sublime Text3自动补全的HTML文件中都有一个属性lang

<html lang="zh-CN">

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

<html lang="en">

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

经过一番谷歌,先贴出W3C中的一篇文章《为什么使用语言属性?》
https://www.w3.org/International/questions/qa-lang-why
里面讲得很详细

大概就是

  1. 语言属性允许你根据语言调整内容样式。更多用法请看使用 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 普通话 (繁体, 台湾)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值