:lang()伪类可根据lang属性为不同语言文本应用特定样式。如:lang(zh)设置中文字体,:lang(en)设英文衬线字体,:lang(ar)实现阿拉伯语右对齐,结合[lang~="zh"]可提升兼容性,适用于多语言网站的精准排版控制。

在多语言网页中,不同语言的文本可能需要不同的样式处理,比如中文字体、英文衬线字体或阿拉伯语右对齐等。CSS 的 :lang() 伪类选择器能根据元素的语言属性自动应用对应样式,无需额外类名,实现精准控制。
lang选择器的基本语法
:lang() 根据元素的 lang 属性匹配语言,并应用样式。写法如下:
css">:lang(语言代码) { 样式规则 }
语言代码遵循 ISO 639 标准,如 en(英语)、zh(中文)、ar(阿拉伯语)等。
立即学习“前端免费学习笔记(深入)”;
HTML中设置语言属性
使用 lang 属性声明元素的语言,是 :lang 生效的前提。
示例:
html"> 你好,世界 Hello, world مرحبا بالعالم
也可以写在 上作为全局默认。
实际应用场景与样式控制
通过 :lang() 可针对不同语言设置字体、间距、对齐方式等。
-
设置中文字体:
:lang(zh) {
font-family: "Microsoft YaHei", sans-serif;
} -
英文使用衬线字体:
:lang(en) {
font-family: "Times New Roman", serif;
} -
阿拉伯语右对齐:
:lang(ar) {
text-align: right;
direction: rtl;
} -
日文假名间距调整:
:lang(ja) {
letter-spacing: 0.05em;
}
结合属性选择器提高兼容性
某些旧浏览器对 :lang() 支持有限,可结合属性选择器增强兼容:
[lang~="zh"], :lang(zh) {
font-family: "PingFang SC", "Hiragino Sans GB";
}
这里 [lang~="zh"] 匹配 lang 属性包含 "zh" 的元素,~ 表示独立单词匹配,适合处理如 "zh-CN" 或 "zh-TW"。
基本上就这些。使用 :lang() 能让样式随语言自动切换,结构清晰又便于维护,特别适合国际化网站的排版需求。不复杂但容易忽略。









