bootstrap 4导航活动链接颜色

时间:2018-09-20 16:46:17

标签: css bootstrap-4 navigationbar

我想将活动菜单链接的颜色更改为绿色。我尝试了各种方法(查看开发人员模式,该框架应用了哪些规则),但是没有用。您能建议如何进行吗?我正在使用Bootstrap 4和mdbootstrap。

HTML代码:

Arrays.sort(vehicleList, Comparator.comparing(Vehicle::getOwner));

到目前为止我已经尝试过的CSS技巧,但是没有用(只有悬停可以使用):

  <nav class="navbar navbar-expand-md navbar-light sticky-top">

    <div id="navcontainer" class="d-flex container py-2 justify-content-center align-items-center">

<!-- Logo+Nev -->
      <div id="nevtitulus" class="d-flex align-items-start mr-lg-5 mr-md-3">
        <div>
          <img id="logo" class="mr-lg-3 mr-2" src="images/DRLJ_logo.png" alt="logo">
        </div>
        <!--logo-->
          <div class="text-center">
            <span id="logoname">Dr. Langmár Judit</span>
            <!-- hide on screens smaller than md -->
            <p id="logodesc" class="d-none d-md-block">Akupunktőr, üzemorvos, orthopaed szakorvos</p>
            <!-- hide on screens wider than sm -->
            <p id="logodesc2" class="d-md-none">Akupunktőr, üzemorvos, <br> orthopaed szakorvos</p>
          </div>
          <!--Nev+titulus-->
      </div> <!--logo+nev container-->

    <div id="hamburger-wrapper" class="ml-5 ml-md-0">

      <div id="button-wrapper" class="d-flex szelesseg justify-content-center">
<!-- hamburger menu -->
        <button class="navbar-toggler" type="button"
            data-toggle="collapse" data-target="#navcollapse" aria-controls="navcollapse"
            aria-expanded="false" aria-label="Toggle Navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
      </div>
<!-- collapse navbar -->
        <div class="collapse navbar-collapse" id="navcollapse">
          <ul class="nav navbar-nav text-center">
            <li class="nav-item"><a class="nav-link" href="#fooldal">Főoldal<span class="sr-only">(current)</span></a></li>
            <li class="nav-item"><a class="nav-link" href="#kezelesek">Kezelések</a></li>
            <li class="nav-item"><a class="nav-link" href="#arak">Árak</a></li>
            <li class="nav-item"><a class="nav-link" href="#galeria">Galéria</a></li>
            <li class="nav-item"><a class="nav-link" href="#rolam">Rólam</a></li>
            <li class="nav-item"><a class="nav-link" href="#kapcsolat">Kapcsolat</a></li>
          </ul>
        </div>
        <!-- collapse navbar -->
      </div>
      <!--hamburger-wrapper-->
    </div>
    <!--Navcontainer-->
    </nav>

下面的这一方法有效,但前提是要从体内删除导航所指的锚标签

.navbar.navbar-light .navbar-nav .nav-item .nav-link:hover {
color: rgb(129, 91, 73);
background-color: rgba(0, 0, 0, 0.1);
}

.navbar-light .navbar-nav .nav-item .nav-link:focus {
  color: #0DB159;
}

.navbar-light .navbar-nav .nav-item:active .nav-link {
  color: #0DB159;
}

#navcollapse a:active {
    color: #0DB159;
}

我也尝试过这些,但是直到锚标签在体内都没有用...

.nav.navbar-nav .nav-item .nav-link:focus {
  color: #0DB159
}

我的一个朋友建议在CSS中使用.active类,但这也不起作用:

.nav.navbar-nav .nav-item .nav-link:focus,
.nav.navbar-nav .nav-item:focus,
.nav.navbar-nav .nav-item a:focus,
.nav.navbar-nav .nav-item .nav-link a:focus,
.nav.navbar-nav .nav-item .nav-link:active,
.nav.navbar-nav .nav-item:active,
.nav.navbar-nav .nav-item a:active,
.nav.navbar-nav .nav-item .nav-link a:active {
  color: #1c8a66}

HTML中的锚点:

    .nav.navbar-nav .nav-item .nav-link.active {
      color: #1c8a66
   }

CSS中的锚类

<a class="anchor" id="kezelesek"></a>

在这里您可以看到问题:如果相应的anchor标签存在,则菜单不会更改颜色:

https://www.w3schools.com/code/tryit.asp?filename=FVHSP1KJDQZY

5 个答案:

答案 0 :(得分:1)

您需要使用与Bootstrap CSS选择器具有相同特性的CSS选择器。

.navbar-light .nav-item.active .nav-link,
.navbar-light .nav-item .nav-link:active,
.navbar-light .nav-item .nav-link:focus,
.navbar-light .nav-item:hover .nav-link {
    color: #00B159;
}

演示:https://www.codeply.com/go/bsS6PogUFQ

答案 1 :(得分:0)

最后,我设法解决了这个问题,但是没有引导程序。遗憾的是,basig bootstrap.js没有此功能会自动将活动状态从一个导航元素移动到另一个导航元素。

我最后使用此JS解决方案来突出显示活动的导航菜单:

https://codepen.io/gearmobile/pen/bByZdG

$( '#topheader .navbar-nav a' ).on( 'click', function () {
$( '#topheader .navbar-nav' ).find( 'li.active' ).removeClass( 'active' );
$( this ).parent( 'li' ).addClass( 'active' );
});

答案 2 :(得分:0)

您只能为当前所在的网页和html文件添加activeli.nav-item <li class="nav-item active">

在CSS中,使用.active a并使用.active a { color: black; }这样的常规活动链接样式设置样式

您可以通过定位nav标签中的最后一个class元素来添加悬停效果,如下所示 .sticky-top a:hover { color: black; }

如果您在主页上,则该链接应该是唯一突出显示的链接。您将需要转到其他html文件,并为其他li.nav-item标签找到相同的内容。

答案 3 :(得分:0)

我很感激我迟到了回答这个问题。然而,在自己寻找这个问题的答案后,我偶然发现了一个对我有用的答案。

简而言之,我意识到我可以通过为指向自身的链接(活动页面,或指向我正在编辑的页面的链接)添加“active”作为一个类来实现预期的效果。例如,如果我从主页点击 Active Page Link,我将被带到 active_page.html。在该页面的 html 文件中,我需要使用以下内容更新 html:

<a class="nav-link active" href="../static/active_page.html">Active Page</a>

换句话说,只需将“active”添加到链接指向自身的锚类(我希望这是有道理的)。换句话说,对于每个链接都有一个 .html 页面,并且对于指向该链接所在页面的每个链接,将“active”添加到 a 标记类(如上)。

为了进一步细化,如果您想控制活动链接的颜色,请检查元素以找到应用颜色的 css 行并更改 css 文件。

答案 4 :(得分:-1)

li.selected a { color: #0DB159; }

HTML

<ul class="nav navbar-nav text-center">
            <li class="nav-item selected"><a class="nav-link" href="#fooldal">Főoldal<span class="sr-only">(current)</span></a></li>
            <li class="nav-item"><a class="nav-link" href="#kezelesek">Kezelések</a></li>
            <li class="nav-item"><a class="nav-link" href="#arak">Árak</a></li>
            <li class="nav-item"><a class="nav-link" href="#galeria">Galéria</a></li>
            <li class="nav-item"><a class="nav-link" href="#rolam">Rólam</a></li>
            <li class="nav-item"><a class="nav-link" href="#kapcsolat">Kapcsolat</a></li>
</ul>