为什么在Bootstrap 4.1中,下拉菜单中的下拉菜单项不在有效位置?

时间:2019-01-21 13:42:19

标签: laravel-5 bootstrap-4

我在laravel 5.7 / blade / Bootstrap 4.1应用程序中有一个带有子菜单的左侧菜单,并且如果打开了子菜单的某些元素 我想保持打开父菜单项。我试图将其保留为当前控件名称:

<?php $manage_storage= ($current_controller_name == 'ClientsController'); ?>

<div class="sidebar-header">
    @if(isset($app_name))<h3>{{ $app_name }}</h3>@endif
</div>

<ul class="list-unstyled components">

    <li>
        <a href="#users_submenu" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">Manage Users</a>
        <ul class="collapse list-unstyled" id="users_submenu">
            <li>
                <a href="#">Manage Departments</a>
            </li>
            <li>
                <a href="#">Manage Users</a>
            </li>
        </ul>
    </li>


    <li>
        <a href="#manage_storage_submenu" data-toggle="@if($manage_storage) dropdown @else collapse @endif" aria-expanded="@if($manage_storage) true @else false @endif" class="@if($manage_storage) @else dropdown-toggle @endif">Manage Storage</a>
        <ul class="collapse list-unstyled @if($manage_storage) show @endif" id="manage_storage_submenu">
            <li class=" @if($current_controller_name == 'ClientsController') active @endif ">
                <a href="{{ url('admin/clients') }}">Manage Clients</a>
            </li>
            <li>
                <a href="#">Manage Locations</a>
            </li>

            <li class=" @if($current_controller_name == 'WarehousesController') active @endif ">
                <a href="{{ url('admin/warehouses') }}" >Manage Warehouses</a>
            </li>

        </ul>
    </li>

因此,如果打开“客户端”页面,则必须打开“管理存储”菜单。

但是它不符合我的预期: 请打开: http://demo2.nilov-sergey-demo-apps.tk/admin/warehouses/2/edit 它的凭据为admin@demo.com 111111

查看http://demo2.nilov-sergey-demo-apps.tk/admin/dashboardhttp://demo2.nilov-sergey-demo-apps.tk/admin/clients页面 第一页(未打开“管理存储”时)下拉菜单子图标位于该页面的其他位置: 在第二页上(打开“管理存储”时),我没有看到下拉子菜单项的图标。

如何修复?

更新的1号区块 设置

<li style="position: relative;">

图标位于适当的位置,但是“管理存储”不可单击。 我尝试过,但与“管理用户”菜单项没有任何区别,菜单项本身没有php代码,可以正常工作。 怎么了?

更新的块#2: 我在https://validator.w3.org下检查了html生成的代码 并出现错误:

Error: Bad value  false  for attribute aria-expanded on element a.
From line 96, column 4; to line 96, column 112

ive;">↩         <a href="#manage_storage_submenu" data-toggle=" collapse " aria-expanded=" false " class=" dropdown-toggle "><span 

我认为该错误是由aria-expanded =定义中的空格调用的,因为我有刀片来源:

    <a href="#manage_storage_submenu" data-toggle="@if($manage_storage) dropdown @else collapse @endif" aria-expanded="@if($manage_storage) true @else false @endif" class="@if(!$manage_storage) dropdown-toggle @endif"><span style="text-decoration: underline">Manage Storage</span></a>

但是,如果我删除aria-expanded =定义中的空间,则会出现刀片语法错误。会引起我的问​​题吗?哪种方法有效?

谢谢!

0 个答案:

没有答案