2015-08-14 5 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, и установив его результат в классе a, например ' ... '; –

+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; 
} 

Good Luck!

+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

жаль, что я забыл использовать одинарные кавычки в конечном коде ..... внутри класса = ".." изменить все двойные на одинарные кавычки. –

+0

, а также точка с запятой; после выражения эха :) Это происходит потому, что я использую python из долгого времени. –

Смежные вопросы