CSS 2.1 的语言选择符及不同浏览器的支持

公司准备搞多语言版,因此想到css支持多国语言的能力。找了些资料看看,发现CSS 2.1就已经支持多国语言的选择符,可以根据文字的不同语言定义不同的风格。比如,网页中的中文往往就比英文要大一号字,同样大小的字体,不是英文不好看就是中文不好看。应用语言选择符就可以解决这个问题。但是随之而来的是不同的浏览器的支持又不尽相同…

CSS 2.1里一共定义了两种语言选择符:属性选择符号(Attributes Selector)和虚拟选择符(Pseudo Selector)。如下:

E[att=val]
E:lang(c)

应用在不同语言上,可以是:

语言为英文:div[lang="en"]{}
语言为中文:div:lang(zh){}

可惜不是所有的浏览器都支持多语言选择符,支持如下:

  • IE 7, 仅支持属性选择符
  • Firefox 2.0, 两者皆支持。没有检验Firefox 1.5,但应该是一样的。
  • Opera 9,两者皆支持。

下面的范例中,供有3个DIV标签构成的长条,每个标签均设置了不同的语言:英文,中文及日语。下面的CSS选择符分别为不同的语言设置了不同的背景颜色。

蓝色背景
红色背景
在IE7里是橙色,在Firefox和Opera里是绿色。

以下4个不同的CSS选择符根据以上方框的语言属性分别设置了不同的背景颜色,前3个选择符为属性选择符,最后一个为虚拟选择符。由于IE6不支持任何一种选择符,所以三个方框都是白色背景,IE7里分别是蓝色,红色和橙色。Firefox和Opera支持虚拟选择符,所以在Firefox和Opera里,最后一个不是成色,而是绿色。

完整的CSS代码:
div[lang="en"]{
background-color: blue;
}
div[lang="zh"]{
background-color: red;
}
div[lang="ja"]{
background-color: orange;
}
div:lang(ja){
background-color: green;
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注