我想将活动菜单链接的颜色更改为绿色。我尝试了各种方法(查看开发者模式从框架应用了哪些规则),但它不起作用。您能告诉我如何进行吗?我正在使用 Bootstrap 4 和 mdbootstrap。
HTML 代码:
<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>
到目前为止我已经尝试过的 CSS 技巧,但没有成功(只有悬停有效):
.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
}
我也尝试过这些,但直到锚标签位于正文中才起作用......
.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}
我的朋友建议在 CSS 中使用 .active 类,但这也不起作用:
.nav.navbar-nav .nav-item .nav-link.active {
color: #1c8a66
}
HTML 中的锚点:
<a class="anchor" id="kezelesek"></a>
CSS 中的锚定类
a.anchor {
display: block;
position: relative;
top: -57px;
visibility: hidden;
}
在这里您可以看到问题:如果相应的锚标记存在,菜单不会改变颜色:
https://www.w3schools.com/code/tryit.asp?filename=FVHSP1KJDQZY
您需要使用与 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;
}
您可以仅针对当前所在的网页和 html 文件将
active
添加到 li.nav-item
,如下所示
<li class="nav-item active">
在 CSS 中使用
.active a
并使用传统的活动链接样式进行样式设置,如下所示 .active a { color: black; }
您可以通过定位导航标签中的最后一个类元素来添加悬停效果,如下所示
.sticky-top a:hover { color: black; }
如果您在主页上,则该链接应该是唯一突出显示的链接。您需要转到其他 html 文件,并对其他
li.nav-item
标签进行同样的操作。
我很感激我迟到了回答这个问题。然而,在自己寻找这个问题的答案后,我偶然发现了一个对我有用的答案。
简而言之,我意识到通过添加“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”添加到标签类(如上所述)。
为了进一步细化,如果您想控制活动链接的颜色,请检查元素以查找所应用颜色的 css 行并更改 css 文件。
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>
最后我设法解决了这个问题,但是在引导程序之外。遗憾的是basig bootstrap.js没有这个自动将活动状态从一个nav元素移动到另一个nav元素的功能...
我最后使用了这个 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' );
});
只要您的 Bootstrap 版本为 5.2.0 或更高版本,您就可以使用 CSS 变量。
<nav class="navbar navbar-expand-lg" style="--bs-navbar-active-color: rgb(var(--bs-link-color-rgb))">