简体   繁体   English

使用可折叠 div CSS 放置和更改箭头

[英]Put and change arrow with collapsible div CSS

i have the followwing structure in my html code:我的 html 代码中有以下结构:

<ul id="urlcss">
   <li class="nav-submenu">
      <a class="collapsed" href="#" data-toggle="collapse" data-target="#submenu0">
         ADMIN
      </a>
      <div class="collapse" id="submenu0" aria-expanded="false">
         // Some menus check the image below
      </div>
   </li>
</ul>

And if you see that on browser, it looks like this:如果你在浏览器上看到它,它看起来像这样:
在此处输入图像描述

With the menu collapse show, like this:随着菜单折叠显示,像这样:
在此处输入图像描述

Ok what i want to do is, when a user press the li with nav-submenu class i want to show an arrow indicating that the collapse menu below belong to that li, and change the background color, i tried with css but nothing happens, here is an example of what i want (Look the arrow):好的,我想做的是,当用户使用 nav-submenu class 按 li 时,我想显示一个箭头,指示下面的折叠菜单属于该 li,并更改背景颜色,我尝试使用 css 但没有任何反应,这是我想要的一个例子(看箭头):
在此处输入图像描述

I tried doing this piece of code to place something like a holder but i doesn't work:我试着做这段代码来放置一个像持有人一样的东西,但我不工作:

.nav-submenu[data-toggle].collapsed:after {
    content: " ▾";
}
.nav-submenu[data-toggle]:not(.collapsed):after {
    content: " ▴";
}

This is using BootStrap 5 Nav Using Dropdowns这是使用 BootStrap 5 Nav Using Dropdowns

With very little css you can achieve what you are looking for.只需很少的 css,您就可以实现您想要的。

 .nav-link.dropdown-toggle:after { transform: rotateX(-180deg); transition: transform 500ms; }.nav-link.dropdown-toggle.show:after { transform: rotateX(0deg); }.nav.nav-item:hover{ transition: background-color 500ms }.nav.nav-item:hover{ background-color: lightblue; }
 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script> <ul class="nav flex-column"> <li class="nav-item"> <a class="nav-link active" aria-current="page" href="#">Active</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" role="button" aria-expanded="false">Dropdown</a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><a class="dropdown-item" href="#">Something else here</a></li> <li> <hr class="dropdown-divider"> </li> <li><a class="dropdown-item" href="#">Separated link</a></li> </ul> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> <li class="nav-item"> <a class="nav-link disabled">Disabled</a> </li> </ul>

I've created for you a small example.我为你创建了一个小例子。 Also is used a small js code to toggle default class name.还使用一个小的 js 代码来切换默认的 class 名称。

 const menus = document.querySelectorAll('[data-toggle="collapse"]') for (const menu of menus) { menu.addEventListener('click', function(event) { this.classList.toggle('collapsed'); }) }
 .nav-submenu a.collapsed:after { content: " ▾"; }.nav-submenu a:not(.collapsed):after { content: " ▴"; }.nav-submenu a:not(.collapsed)+div { display:none; }
 <ul id="urlcss"> <li class="nav-submenu"> <a class="" href="#" data-toggle="collapse"> ADMIN </a> <div> // Some menus check the image below </div> </li> </ul>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM