:lang选择器通过html的lang属性匹配元素并应用样式,支持中英文等多语言差异化排版。语法为element:lang(语言代码),如p:lang(zh)设置中文段落字体;可继承父元素lang属性,适配zh-CN、en-US等地区变体;常用于字体、引号、文本方向及断行规则控制,提升多语言页面排版精度。
css 的 :lang 选择器可以根据元素的语言属性来匹配并应用样式。它依据的是 HTML 中的 lang
属性,适用于需要对不同语言内容进行差异化排版的场景,比如设置中文、英文或阿拉伯文的特定字体或行高。
基本语法
使用 :lang() 时,括号内填入语言代码,如 zh
(中文)、en
(英文)、ar
(阿拉伯语)等:
element:lang(language-code) { 样式规则 }
例如,为所有语言设为中文的段落设置字体:
p:lang(zh) { font-family: "SimSun", serif; }
匹配 lang 属性的方式
:lang 选择器会根据元素自身的 lang
属性进行匹配,包括继承情况。只要元素或其父元素设置了对应语言,就可以被选中。
HTML 示例:
<p lang="zh">你好,世界</p>
立即学习“前端免费学习笔记(深入)”;
<p lang="en">Hello world</p>
CSS 设置不同语言的字体:
p:lang(zh) { color: red; }
p:lang(en) { color: blue; }
此时中文段落文字为红色,英文为蓝色。
支持复合语言标签
语言代码可以包含地区变体,比如 zh-CN
(中国大陆)、zh-TW
(中国台湾)、en-US
、en-GB
等。
示例:
q:lang(zh-CN) { quotes: "「" "」"; }
q:lang(en) { quotes: '"' '"'; }
这样在不同语言环境下,引用符号可自动适配本地习惯。
实际应用场景
- 字体适配:中英文混排时,为不同语言指定合适的字体族。
- 引号格式:根据语言使用不同的引用符号。
- 文本方向:配合
direction
和unicode-bidi
处理阿拉伯语或希伯来语等从右到左书写的语言。 - 连字符与断行:不同语言断行规则不同,可用 :lang 单独设置
hyphens
或word-break
。
例如,控制中文不自动换行,英文允许断词:
*:lang(zh) { word-break: keep-all; }
*:lang(en) { word-break: break-word; }
基本上就这些。使用 :lang 能让样式更智能地响应多语言内容,提升国际化页面的排版质量。