2015-08-14 31 views
3

我“按钮”,它改变语言的网页上:PHP/CSS/HTML语言按钮,当前语言

<div class="wrapper"> 
    <a class="button-link" href= "<?php echo qtrans_convertURL(get_permalink(), 'de'); ?>" target="_parent">DE</a> 
    <a class="button-link" href="<?php echo qtrans_convertURL(get_permalink(), 'en'); ?>" target="_parent">EN</a> 
</div> 

我做一个悬停效果,展现,其语言即将被选择:

.button-link:hover { 
    color: #fff; 
    border-bottom: 2px solid #e95252; 
} 

现在我想保持这个边界线所选择的语言下。这样用户总能看到活跃的语言。我认为这将是如此简单:

.button-link:active{} 

但它不工作的方式我想要它,所以我想我必须写一个PHP函数。我已经找到了如何显示当前页面的例子,但它与语言不一样。因为语言按钮与页面无关,所以如果一个人选择了英语,它应该始终保持下划线。

+0

这样做可以使PHP中的功能,并设置其结果的方式在一个类中,像'

+0

你在'.button-link:active {}'里面没有任何行为? –

回答

0

你可以尝试做如下 PHP:

<?php if(qtrans_getLanguage()=='de'): ?> 
<a class="button-link active" href= "<?php echo qtrans_convertURL(get_permalink(), 'de'); ?>" 
     target="_parent">DE</a> 
<?php endif; ?> 

CSS:

.active { 
    border-bottom: 2px solid #e95252; 
} 

祝您好运!

+0

此代码完美工作,非常感谢您!我为其他语言添加了“elseif”,并在每个“if”/“elseif”中插入了其他语言的“未激活”按钮。 – Student

+0

很高兴我能帮助,如果你可以选择和投票我的答案,我将不胜感激。 –

1

这样做的一种方法是将class="<?= $lang = 'de' ? 'active' : '' ?>"添加到每个.button-link。因为他们都在做同样的会比较简单:

<?php 
    $langs = array('de', 'fr', 'it', 'en'); 
?> 

<div class="wrapper"> 
    <?php foreach ($langs as $lang) : ?> 
     <a class="button-link" href="<?= qtrans_convertURL(get_permalink(), $lang); ?>" class="<?= qtrans_getLanguage() == $lang ? 'active-lang' : '' ?>" target="_parent"><?= strtoupper($lang); ?></a> 
    <?php endforeach; ?> 
</div> 

和CSS,你会简单地选择该类无论是作为

.active-lang {} 

.button-link.active-lang {} 
+1

谢谢,围绕它循环是一个非常好的主意,我会继续努力。 – Student

0

这样的事情可能是完成: 定义新类>

.button-link-active { 
    border-bottom: 2px solid #e95252; 
} 

然后用下面的代码中添加你的链接类:

<?php if (qtrans_getLanguage() == "en"){ echo "button-link-active" } ?> 

最终代码会是这样:

<a class="button-link <?php if (qtrans_getLanguage() == "en"){ echo "button-link-active" } ?> " href= "<?php echo qtrans_convertURL(get_permalink(), 'de'); ?>" target="_parent">DE</a> 
+0

抱歉,我忘记在最终代码中使用单引号..... inside class =“..” 将所有双引号改为单引号。 –

+0

以及分号;在echo声明之后:) 它正在发生,因为我长时间使用python。 –