HTML/CSS - навигация с прокруткой не разрешает более одной активной ссылки на NAV

Я сталкиваюсь со странной проблемой, я не могу понять, что вызывает это.. может быть, кто-то может мне помочь? Я пытался применить Scrolling Nav Framework на моем сайте..

Все уже настроено так, как я хочу, дизайн и прочее, единственная проблема в том, что у меня не может быть определенного элемента выпадающего меню в панели навигации, чтобы он был активным (выбранным).

У меня есть обычные навигационные ссылки, а затем в последней ссылке меню есть ссылка, которая содержит раскрывающийся список со списком языков, которые пользователь может выбрать для изменения языка веб-сайта.

Проблема в том, что я установил в качестве активного класса класс для выпадающего элемента, соответствующего выбранному языку страницы, и в моем окончательном HTML я просто вижу английский, он не содержит тег "active" на классах li, почему это происходит?

Это потому, что я не могу иметь более одного активного элемента в панели навигации? Я попытался добавить "активный" с помощью Chrome Inspect Element, и я увидел различия "активного класса" в стиле...

Вот мой HTML-код, это может помочь:

<body id="page-top" data-spy="scroll" data-target=".navbar-fixed-top">

<!-- Navigation -->
<nav class="nav-justified navbar navbar-default navbar-fixed-top navbar-inverse" role="navigation">
    @*<div class="container">*@
        <div class="navbar-header page-scroll">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand page-scroll" href="#page-top">Start Bootstrap</a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse">
            <div class="navbar-ex1-collapse">
                <ul class="nav nav-justified">
                    <!-- Hidden li included to remove active class from about link when scrolled up past about section -->
                    <li class="hidden">
                        <a class="page-scroll" href="#page-top"></a>
                    </li>


                    <li>@Html.ActionLink(@Model.Bio[CultureInfo.CurrentCulture].ToString(), "Index", "Home", null, new { @class = "navBarLinks page-scroll", @href = "#intro" })</li>
                    <li><a href="#about" class="page-scroll navBarLinks">@Model.Disco[CultureInfo.CurrentCulture]</a></li>
                    <li><a href="#services" class="page-scroll navBarLinks">@Model.Gallery[CultureInfo.CurrentCulture]</a></li>
                    <li><a href="#contact" class="page-scroll navBarLinks">@Model.Tour[CultureInfo.CurrentCulture]</a></li>
                    <li><a class="page-scroll navBarLinks">@Model.Video[CultureInfo.CurrentCulture]</a></li>
                    @{ListDictionary languages = (ListDictionary)Model.Languages[CultureInfo.CurrentCulture.ToString()];}

                    <li class="dropdown">
                        <a href="#" class="dropdown-toggle navBarLinks" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">@languages[CultureInfo.CurrentCulture.ToString()]<span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            @foreach (var languageKey in languages.Keys)
                            {
                                if (languageKey.ToString() == Model.SelectedLanguage)
                                {
                                    <li class="active">
                                        @Html.ActionLink(languages[languageKey.ToString()].ToString(), "Start", "Home", new { lang = languageKey }, null)
                                    </li>
                                }
                                else
                                {
                                    <li>
                                        @Html.ActionLink(languages[languageKey.ToString()].ToString(), "Start", "Home", new { lang = languageKey }, null)
                                    </li>
                                }
                            }
                        </ul>
                    </li>

                </ul>
            </div>
        </div>
        <!-- /.navbar-collapse -->
    @*</div>*@
    <!-- /.container -->
</nav>

<!-- Intro Section -->
<section id="intro" class="intro-section">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>Scrolling Nav</h1>
                <p><strong>Usage Instructions:</strong> Make sure to include the <code>scrolling-nav.js</code>, <code>jquery.easing.min.js</code>, and <code>scrolling-nav.css</code> files. To make a link smooth scroll to another section on the page, give the link the <code>.page-scroll</code> class and set the link target to a corresponding ID on the page.</p>
                <a class="btn btn-default page-scroll" href="#about">Click Me to Scroll Down!</a>
            </div>
        </div>
    </div>
</section>

<!-- About Section -->
<section id="about" class="about-section">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>About Section</h1>
            </div>
        </div>
    </div>
</section>

<!-- Services Section -->
<section id="services" class="services-section">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>Services Section</h1>
            </div>
        </div>
    </div>
</section>

<!-- Contact Section -->
<section id="contact" class="contact-section">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>Contact Section</h1>
            </div>
        </div>
    </div>
</section>   

Заранее большое спасибо за помощь!

1 ответ

Решение

Я получил его, используя другой класс для активного элемента в выпадающем списке языков на панели навигации! Finnaly!

Я использовал те же классы CSS для активного элемента, что и раньше, для Dropdown внутри nav, вот мой окончательный код:

CSS

<style>

    .dropdown-menu .selectedOne a{
        background-color: white;
        color: black;
    }

    .dropdown-menu .selectedOne a:hover{
        background-color: white;
        color: black;
    }

</style>

CSHTML

<nav class="nav-justified navbar navbar-default navbar-fixed-top navbar-inverse" role="navigation">
        @*<div class="container">*@
            <div class="navbar-header page-scroll">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand page-scroll" href="#page-top">Start Bootstrap</a>
            </div>

            <!-- Collect the nav links, forms, and other content for toggling -->
            <div class="collapse navbar-collapse">
                <div class="navbar-ex1-collapse">
                    <ul class="nav nav-justified">
                        <!-- Hidden li included to remove active class from about link when scrolled up past about section -->
                        <li class="hidden">
                            <a class="page-scroll" href="#page-top"></a>
                        </li>


                        <li>@Html.ActionLink(@Model.Bio[CultureInfo.CurrentCulture].ToString(), "Index", "Home", null, new { @class = "navBarLinks page-scroll", @href = "#intro" })</li>
                        <li><a href="#about" class="page-scroll navBarLinks">@Model.Disco[CultureInfo.CurrentCulture]</a></li>
                        <li><a href="#services" class="page-scroll navBarLinks">@Model.Gallery[CultureInfo.CurrentCulture]</a></li>
                        <li><a href="#contact" class="page-scroll navBarLinks">@Model.Tour[CultureInfo.CurrentCulture]</a></li>
                        <li><a class="page-scroll navBarLinks">@Model.Video[CultureInfo.CurrentCulture]</a></li>
                        @{ListDictionary languages = (ListDictionary)Model.Languages[CultureInfo.CurrentCulture.ToString()];}

                        <li class="dropdown">
                            <a href="#" class="dropdown-toggle navBarLinks" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="true">@languages[CultureInfo.CurrentCulture.ToString()]<span class="caret"></span></a>
                            <ul class="dropdown-menu">
                                @foreach (var languageKey in languages.Keys)
                                {
                                    if (languageKey.ToString() == Model.SelectedLanguage)
                                    {
                                        <li class="selectedOne">
                                            @Html.ActionLink(languages[languageKey.ToString()].ToString(), "Start", "Home", new { lang = languageKey }, null)
                                        </li>
                                    }
                                    else
                                    {
                                        <li>
                                            @Html.ActionLink(languages[languageKey.ToString()].ToString(), "Start", "Home", new { lang = languageKey }, null)
                                        </li>
                                    }
                                }
                            </ul>
                        </li>

                    </ul>
                </div>
            </div>
            <!-- /.navbar-collapse -->
        @*</div>*@
        <!-- /.container -->
    </nav>
Другие вопросы по тегам