用于xml的CSS选择器:lang

时间:2018-04-22 13:37:36

标签: html css css-selectors lang

我想为每种语言使用不同的CSS选择器。我有一个HTML文档,如:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
     ...
</html>

我有不同的语言,我想根据语言改变风格。

我已经尝试了html:lang(es),但它不起作用。

2 个答案:

答案 0 :(得分:2)

xml:lang属性仅在XHTML被解释为XML时才有效。将其解析为HTML时,您需要使用lang属性。

您可以通过使用XML文件扩展名在本地保存XHTML文档然后在浏览器中加载来测试,并且当前的CSS选择器应该可以工作。

如果您可以控制XHTML的生成,最简单的方法是使用两种语言属性,以确保在读取XML或HTML时正确评估它。 < / p>

这在W3C国际Declaring language in HTML页面中有描述:

  

当将XHTML 1.x或多语言页面作为text / html提供时,每次要设置语言时都同时使用lang属性和xml:lang属性。 xml:lang属性是在XML中标识语言信息的标准方法。确保两个属性的值相同。

<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
  

xml:lang属性实际上对于以HTML格式处理文件并不实用,但只要您以XML格式处理或提供文档,就会从lang属性中接管。 lang属性由XHTML的语法允许,并且也可以被浏览器识别。但是,当使用其他XML解析器时(例如XSLT中的lang()函数),您不能依赖于被识别的lang属性。

答案 1 :(得分:1)

我建议更新html中的language属性。您可以使用CSS选择此元素。 xml是可以使用CSS选择的属性。

html[xml:lang="es"]{ //your style }

您还可以使用lang属性

更改css
html[lang="es"]{ //your style } 

html[xml\:lang="es"] body{ background: red; } 
html[xml\:lang="en"] body{ background: green; } 
<html xml:lang="es" lang="es">
<head>
</head>
<body>
</body>