图解css3:核心技术与案例实战. 2.6 语言伪类选择器

简介:

2.6 语言伪类选择器

使用语言伪类选择器来匹配使用语言的元素是非常有用的,特别是用于多语言版本的网站,其作用更是明显。可以使用他来根据不同语言版本设置页面的字体风格。

2.6.1 语言伪类选择器语法

语言伪类选择器是根据元素的语言编码匹配元素。这种语言信息必须包含在文档中,或者与文档关联,不能从CSS指定。为文档指定语言,有两种方法可以表示。如果使用HTML 5,直接可以设置文档的语言。例如:

<!DOCTYPE HTML>

<html lang="en-US">

另一种方法就是手工在文档中指定lang属性,并设置对应的语言值。例如:

<body lang="fr">

语言伪类选择器允许为不同的语言定义特殊的规则,这在多语言版本的网站用起来是特别的方便。

E:lang(language)表示选择匹配E的所有元素,且匹配元素指定了lang属性,而且其值为language。

2.6.2 浏览器兼容性

浏览器兼容性如表2-10所示。

语言伪类选择器在IE 7及以下版本中还不被支持,对于追求完美的设计师来说,又有点畏惧,不敢使用。其实也不是没有办法,可以为不同的浏览器(IE 6和IE 7)采用不同的方法来实现。

对于IE 6浏览器,给引文元素在不同版本的时候设置不同的类名,例在英文版本下设置类名“.en”,而在法文版本下设置类名为“.fr”,就可以通过类名给引文定义不同的样式。

对于IE 7浏览器,也可以采用IE 6浏览器的方法。如果不考虑IE 6浏览器,可以使用属性选择器中的“E[foo|="en"]”选择器为不同语言版本的引文设置不同样式。

2.6.3 实战体验:定制不同语言版本引文风格

如果网站是一个多语言版本,使用语言伪类选择器为特定的语言定义不同样式是非常完美的。例如,多语言版本有一段这样的引文,如图2-18所示。

在多语言的网站中,改变引文的不同样式,例如网站还有一个法语语言版本,使用? ...?替代是不是比引号(“...”)更适合其语言版本呢?同时,为了突出引文的重要性,可以在不同的语言版本中给引文设置不同的背景颜色。最后的效果如图2-19所示。

 

图2-19 多语言版本引文的效果

在不增加任何代码或手工修改代码达到图2-19所示的引文效果,使用语言伪类选择器是一个不错的方法,示例代码如下所示。

<!DOCTYPE HTML>

<html lang="en-US">

<head>

  <meta charset="UTF-8">

  <title>语言伪类选择器运用</title> 

</head>

<body>

<p>WWF's goal is to:

<q cite="http://www.wwf.org">

build a future where people live in harmony with nature

</q> we hope they succeed.</p>

</body>

</html>

为<html>标签设置一个“lang=en-US”属性,这是默认英文版本的时候。当网站转译到法语版本,此时<html>标签中的lang属性值动态变成“fr”,如下所示。

<!DOCTYPE HTML>

<html lang="fr">

<head>

  <meta charset="UTF-8">

  <title>语言伪类选择器运用</title> 

</head>

<body>

<p>WWF's goal is to:

<q cite="http://www.wwf.org">

build a future where people live in harmony with nature

</q> we hope they succeed.</p>

</body>

</html>

也可以简单地通过目标伪类来实现。

/*英文(en-US)版本的引文q效果*/

:lang(en) {

  quotes:'"' '"';

}

:lang(en) q {background: red;}

/*法文(fr)版本的引文q效果*/

:lang(fr) {

  quotes:'?' '?';

}

:lang(fr) q {background: green;}

   大家也可以通过这种方法为不同语言版本的网站相关元素设置不同的样式,例如改变网站面页面的字号、设置不同的背景图片等。

相关文章
|
10月前
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
299 63
|
8月前
|
前端开发 容器
CSS 居中技术完全指南:从基础到高级应用
本文详细介绍了 CSS 中常用的居中方法,涵盖水平居中、垂直居中及同时实现两者的方法。
226 12
|
10月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
192 6
|
10月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
265 5
|
10月前
|
前端开发 Ruby
CSS 预编语言的区别
【10月更文挑战第24天】Sass、Less 和 Stylus 等 CSS 预编语言在语法特点、功能特性、性能表现、社区和生态系统等方面存在着不同之处。在选择使用哪种预编语言时,需要综合考虑项目需求、团队技术偏好、个人习惯等因素。你可以根据具体情况进行评估和选择,以充分发挥这些语言的优势,提高前端开发的效率和质量。
|
10月前
|
存储 前端开发 编译器
对 CSS 预编语言的理解
【10月更文挑战第24天】在前端开发领域,CSS 预编语言是一种重要的工具和技术,它们为我们提供了更强大、更灵活和更高效的方式来编写和管理 CSS 代码。以下是对 CSS 预编语言的深入理解。
|
10月前
|
前端开发 开发者
如何快速掌握 CSS 预编语言
【10月更文挑战第24天】快速掌握 CSS 预编语言需要时间和耐心,不要急于求成。通过系统的学习、实践和不断积累经验,你将逐渐熟练掌握 CSS 预编语言,并能够在实际开发中灵活运用,提高开发效率和代码质量。
|
10月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
233 2
|
11月前
|
前端开发 开发者 UED
CSS不同技术的探讨
【10月更文挑战第11天】 CSS不同技术的探讨
|
11月前
|
存储 前端开发 JavaScript
CSS:现代Web设计的不同技术
【10月更文挑战第11天】 CSS:现代Web设计的不同技术

热门文章

最新文章