公司准备搞多语言版,因此想到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选择符分别为不同的语言设置了不同的背景颜色。
以下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;
}