Подтвердить что ты не робот

Как сделать css a: активную работу после щелчка?

Я пытаюсь сделать меню, работающее как вкладки. Сами вкладки работают отлично, а ссылки в меню также замечательные. Но я бы хотел удалить границу вклада активной вкладки, чтобы она выглядела так, будто вы на этой фактической странице. Я пробовал использовать #id a:active, но, похоже, работает только до тех пор, пока я нажимаю ссылку. У меня было хотя и делать это с помощью javascript, но я не могу понять, как это сделать. Здесь мой css для активных.

CSS: (пожалуйста, дайте мне знать, если вам понадобится больше моего css)

#navigation a:active {
    color: #000;
    background: -webkit-gradient(linear, left top, left bottom, from(#DFE7FA), to(#FFF));
    border-bottom-width:0px;
}

Спасибо, /Pyracell

4b9b3361

Ответ 1

Из вашей демонстрационной ссылки в комментариях к другому ответу JavaScript не будет никакой помощи, это должно быть сделано в вашем PHP-коде. Что-то в строках:

<a <?php if (this_tab_is_selected){ ?>class='active' <?php } ?>href='LINK_TO_TAB' >
    TAB_NAME
</a>

Упоминание о том, что изменение вкладок перенаправляется на другую страницу, могло помочь с лучшими ответами с начала xD

В зависимости от вашего кода и того, как вы создаете вкладки, вам нужно изменить this_tab_is_selected на код, который возвращает true для выбранной вкладки.

P.S. Вам все равно нужно внести изменения, упомянутые в другом ответе в вашем CSS. (Который должен изменить #navigation a:active на #navigation a.active)

Ответ 2

Добавить и удалить класс при выборе ссылки вкладки.

#navigation .active {
    color: #000;
    background: -webkit-gradient(linear, left top, left bottom, from(#DFE7FA), to(#FFF));
    border-bottom-width:0px;
}

и используйте script (версия jQuery)

$(function(){

    $('#navigation a').click(function(){

        $('#navigation .active').removeClass('active'); // remove the class from the currently selected
        $(this).addClass('active'); // add the class to the newly clicked link

    });

});

Ответ 3

Грубый способ сделать это с помощью JavaScript (jQuery)

  $('a[href]').each(function() {
    if ($(this).attr('href') == window.location.pathname || $(this).attr('href') == window.location.href)
      $(this).addClass('active');
  });

Ответ 4

Как вы реализуете вкладки; как несколько разных HTML-страниц? Псевдокласс класса :active действительно применяется только тогда, когда ссылка активна, что обычно означает "нажатие". Если вы используете вкладки в виде нескольких HTML-страниц, вам, вероятно, захочется присвоить вкладке CSS, например, "CurrentTab", на вкладке, представляющей страницу, на которой находится пользователь, и применить ваш border-bottom-width:0px к этому классу.

Ответ 5

Практика, которая обычно выполняется, - это применить класс к выбранной в данный момент вкладке, например. class= "selected", а затем измените свой css на целевой класс

#navigation a.selected

Ответ 6

Это не так, как это работает. Активный селектор соответствует (как вы заметили) ссылке, которая в данный момент нажимается (= активна/работает). Что вы хотите, это селектор для активной страницы. Вам нужно будет использовать обычный класс css, например:

#navigation a:active, #navigation a.active {
    color: #000;
    background: -webkit-gradient(linear, left top, left bottom, from(#DFE7FA), to(#FFF));
    border-bottom-width:0px;
}

Ответ 7

Такие вещи должны выполняться с помощью оператора if с использованием кода, такого как PHP.

Например, если вы нажмете ссылку, вы получите новую страницу, задайте переменную страницы, например:

$page = "Home";

Затем используйте инструкцию if для добавления или удаления дополнительных CSS-классов/идентификаторов для выбора стиля, например.

if ($page == "home")
{
  <a href="home.php" class="active">Home</a>
  <a href="about.php">About</a>
}
else if ($page == "About")
{
  <a href="home.php">Home</a>
  <a href="about.php" class="active">About</a>
}