如何在CSS中使用lang选择器_多语言页面样式控制

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

在多语言网页中,不同语言的文本可能需要不同的样式处理,比如中文字体、英文衬线字体或阿拉伯语右对齐等。CSS 的 :lang() 伪类选择器能根据元素的语言属性自动应用对应样式,无需额外类名,实现精准控制。

lang选择器的基本语法

:lang() 根据元素的 lang 属性匹配语言,并应用样式。写法如下:

:lang(语言代码) { 样式规则 }

语言代码遵循 ISO 639 标准,如 en(英语)、zh(中文)、ar(阿拉伯语)等。

HTML中设置语言属性

使用 lang 属性声明元素的语言,是 :lang 生效的前提。

示例:

你好,世界


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() 能让样式随语言自动切换,结构清晰又便于维护,特别适合国际化网站的排版需求。不复杂但容易忽略。