:lang选择器根据元素lang属性匹配语言并应用样式,如p:lang(zh)设置中文宋体,q:lang(en)定义英文直引号,支持字体适配与引号本地化,且子元素可继承父级语言,优于属性选择器,实现多语言排版优化。

CSS 的 :lang 伪类选择器用于根据元素的语言属性来应用特定样式。它特别适用于多语言网站,帮助开发者为不同语言的内容设置合适的排版、字体或引号样式,提升可读性和用户体验。
什么是 :lang 选择器?
:lang() 伪类基于元素的 lang 属性匹配其语言,并对指定语言的内容应用样式。浏览器通过 HTML 中的 lang 属性识别语言,例如 中文
与直接使用 class 或属性选择器不同,:lang 能更准确地处理语言继承——子元素即使没有显式声明 lang,也会继承父元素的语言并触发对应样式。
基本语法和用法
使用格式为::lang(语言代码),其中语言代码遵循 ISO 639 标准,如 en(英语)、zh(中文)、fr(法语)、ja(日语)等。
立即学习“前端免费学习笔记(深入)”;
示例:
- p:lang(zh) { font-family: "SimSun", serif; } —— 为中文段落设置宋体
- q:lang(en) { quotes: '"' '"'; } —— 英文引用使用直引号
- q:lang(zh) { quotes: "“" "”"; } —— 中文引用使用弯引号
解决多语言排版差异
不同语言在排版上有独特需求,:lang 可针对性优化显示效果。
字体适配:中文字体与英文字体通常不通用,通过 :lang 可自动切换。
body:lang(zh) { font-family: "Microsoft YaHei", sans-serif; }body:lang(ja) { font-family: "Hiragino Kaku Gothic", sans-serif; }
body:lang(en) { font-family: Arial, sans-serif; }
引号本地化:避免英文引号出现在中文内容中影响美观。
blockquote:lang(zh) { quotes: "「" "」"; }blockquote:lang(fr) { quotes: "«\A0" "\A0»"; } /* \A0 表示不间断空格 */
结合 HTML 结构实现精准控制
确保 HTML 正确设置 lang 属性是关键。例如:
这是一段中文介绍。
This is an English quote.
此时,内部的英文段落会独立匹配 :lang(en) 规则,实现混合语言下的差异化样式。
注意::lang 比 [lang] 属性选择器更强大,因为它支持语言子标签匹配(如 zh-CN 匹配 :lang(zh))。
基本上就这些。合理使用 :lang 伪类,能让多语言页面在视觉呈现上更自然、专业,无需额外 class 就实现语言感知的样式管理。










