3

我有“按钮”,可以更改网页上的语言:

<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 函数。我找到了如何显示当前页面的示例,但它与语言不同。因为语言按钮独立于页面,例如,如果一个人选择了英语,它应该始终保持下划线。

4

3 回答 3

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 {}
于 2015-08-14T16:35:54.447 回答
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>
于 2015-08-14T16:50:36.713 回答
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;
}

祝你好运!

于 2015-08-14T16:31:33.347 回答