我有一个标题,我计划在所有页面的顶部使用。我想将它保存在一个单独的文件中(我曾经常常使用php
,但我是Bootstrap世界的新手);但是,我不确定如何动态地将active
类分配给代表当前页面的nav-item
。 Bootstrap(4)是否有针对此类事情的烘焙解决方案?我一直在寻找,但尚未找到一个好的解决方案。提前谢谢!
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light bg-transparent fixed-top">
<div class="container">
<a class="navbar-brand" href="#">My Site</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home
<span class="sr-only">(current)</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Work</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Blog</a>
</li>
</ul>
</div>
</div>
</nav>
&#13;
答案 0 :(得分:0)
Bootstrap包含一些jQuery,而不仅仅是CSS。但是,您总是可以在页面加载时运行一些JavaScript或jQuery,这些页面基于在加载页面时读取元素来切换类。例如,您可以:
1)在每个页面上都有一个标识符(例如,页面上元素中的类名,该元素保存页面的名称/值)。示例:
<h1 class="page-lookup">
Home
</h1>
2)将jQuery设置为函数以读取类并使用.val()来获取元素的值。示例:
const activePage = $(".page-lookup").val()
3)在导航栏中的每个
<li id="home-page" class="nav-item">
<a class="nav-link" href="#">Home</a>
</li>
4)运行一个开关盒,该盒查找匹配的存储值(activePage)。在匹配的情况下,您可以运行jQuery来更新类,使其包含将触发Bootstrap格式的“活动”语法。
示例:
switch (activePage) {
case Home:
$('#home-page).attr("class", "nav-item active");
break;
case About:
$('#about-page).attr("class", "nav-item active");
break;
}