php/css/html 语言按钮当前语言

php/css/html language buttons current language

我有 "buttons",可以更改网页上的语言:

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

您可以尝试执行以下操作 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;
}

祝你好运!

这样做的一种方法是向每个 .button-link 添加一个 class="<?= $lang = 'de' ? 'active' : '' ?>"。因为他们都在做同样的事情,所以会更简单:

<?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 中,您只需 select class 或

.active-lang {}

.button-link.active-lang {}

可以这样做: 定义新的 class>

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

然后使用以下代码在您的 link 中添加 class:

<?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>