纯CSS网站翻译

时间:2014-12-14 09:48:25

标签: javascript html css twitter-bootstrap lang

我在stackoverflow上找到了纯css转换的解决方案。 Here.

在CSS中我有:

.en, .sl { display:none; } /* hide all elements with a language class */
.en:lang(en), .sl:lang(sl) { display:block; } /* show those elements that match their language class */

在HTML中:

<html lang="sl">

<div class="sl">Pozdravljeni</div>
<div class="en">Hello</div>

要更改lang属性,我使用js:

function setLang(lang) {
    document.getElementsByTagName('html')[0].setAttribute('lang',lang);                 
}

在我的Chrome计算机上运行正常。它适用于我的iPhone。在ipad mini上。 但它不适用于Chrome中我的女朋友电脑。而不是IE。

似乎它在IE上的计算机上不起作用。

问题出在CSS中。 这段代码:

.en, .sl { display:none; }

有效,而不是:

.en:lang(en), .sl:lang(sl) { display:block; }

我无法弄清楚出了什么问题。

4 个答案:

答案 0 :(得分:1)

您定位<div>上的课程&#34; de&#34;在.de:lang(sl)中,但您没有<div>个班级&#34; de&#34;。

因此,如果您将.de:lang(sl)更改为.sl:lang(sl),它应该有效。

答案 1 :(得分:0)

“。en”和“.de”指的是类名,“:lang(en)”和“:lang(sl)”指的是lang属性。

.en:lang(en), .de:lang(sl) { display:block; }

表示“为类别为'en'和lang ='en'的任何项启用块显示,以及任何类'de'和lang ='sl'”的项目

答案 2 :(得分:0)

html[lang="en"] .de,
html[lang="en"] .sl {
    display: none;
}

html[lang="de"] .en,
html[lang="de"] .sl {
    display: none;
}

html[lang="sl"] .de,
html[lang="sl"] .en {
    display: none;
}

答案 3 :(得分:0)

我使用setLang时出错了。缺少''......

错误:

<body onload="setLang(<?echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);?>);">

右:

<body onload="setLang('<?echo substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);?>');">

Tnx,Rick Hitchcock,你的评论给了我一个提示。