0

我正在使用Laravel 5.5,我想建立一个单一的布局,但我不能做我想做的事。所以这是我使用的问题Bootstrap 4并复制这样的示例导航栏(下面的代码)

<nav class="container-fluid navbar navbar-expand-sm bg-dark navbar-dark" style="padding-left: 75px; margin-top: -16px;">
            <ul class="navbar-nav">
              <li class="nav-item">
                <a class="nav-link active" href="{{url('/')}}">News</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="{{url('/laptops')}}">Sports</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="{{url('/pc')}}">Science</a>
              </li>
            </ul>
          </nav>

问题是当我更改目录时活动状态不会切换,是否有某种方式可以工作。

PS:我看到类似这样的其他问题,但href标签定位的是ID属性而不是link目录

4

1 回答 1

0

好吧,您在这里所做的是将活动类设置为导航栏的一个元素。您需要的是在访问相应链接时会动态更改活动类的东西。一个简单的例子是

<li <?=activeClass("index")?>>
    <a class = "nav-link" href="{{url('/')}}">News</a>
</li>
<li <?=activeClass("laptop")?>>
    <a class = "nav-link" href="{{url('/laptops')}}">Sports</a>
</li>
<li <?=activeClass("pc")?>>
    <a class = "nav-link" href="{{url('/pc')}}">Science</a>
</li>

和php函数

<?php 

function activeClass($requestUri)
{
    $current_file_name = basename($_SERVER['REQUEST_URI'], ".php");

    if ($current_file_name == $requestUri){
        echo 'class="nav-item active"';
    }
    else{
        echo 'class ="nav-item"';
    }
}
?>

所以基本上我在这里所做的是我通过比较传入的请求 uri 动态设置类,如果它与当前呈现的页面匹配,则输出活动类,否则是明显的导航链接类。上面的文件名应该用你自己的 php 文件名替换.

于 2018-06-21T15:34:21.423 回答