:lang伪类根据元素lang属性应用样式,如为中文设SimSun字体、英文用Arial、阿拉伯文右对齐,支持语言继承与变体匹配,提升多语言网站可维护性。

CSS 的 :lang 伪类允许你根据元素的语言属性来应用不同的样式。这在多语言网站中非常有用,比如针对中文、英文、阿拉伯文等不同语言设置特定的字体、行高或文字方向。
基本语法与用法
:lang() 伪类基于元素的 lang 属性匹配语言,并为其应用样式。HTML 中通过 lang 属性声明语言:
你好,世界
Hello, world
مرحبا بالعالم
对应的 CSS 可以这样写:
:lang(zh) {font-family: "SimSun", serif;
line-height: 1.8;
}
:lang(en) {
font-family: Arial, sans-serif;
line-height: 1.5;
}
:lang(ar) {
font-family: "Tahoma", sans-serif;
direction: rtl;
text-align: right;
}
继承性与作用范围
:lang 会匹配设置了对应语言的元素及其所有子元素,具有自然的继承特性。例如:
立即学习“前端免费学习笔记(深入)”;
即使内部的 没有 lang 属性,它仍会被 :lang(zh) 选中,因为其父元素定义了语言。
处理复杂语言变体
你可以使用语言前缀来匹配一组相关语言。例如:
- :lang(zh) 匹配所有中文内容(如 zh、zh-CN、zh-TW)
- :lang(en) 匹配 en、en-US、en-GB 等
如果需要更精确控制,也可以单独定义:
:lang(zh-CN) {font-family: "PingFang SC", sans-serif;
}
:lang(zh-TW) {
font-family: "PingFang TC", sans-serif;
}
实用场景建议
常见用途包括:
- 为中文设置更合适的字体和行高
- 为阿拉伯语等右向左语言自动调整文本方向
- 为日文假名添加适当的间距
- 避免英文默认字体显示中文时出现的渲染问题
确保 HTML 根元素设置正确的 lang 属性,例如:,这样全局样式能正确生效。










