如何在React JS中制作包含另一个下拉菜单的100%宽度下拉菜单?

4

need this dropdown

需要这种类型的下拉菜单,其中包含另一个下拉菜单。我尝试使用Bootstrap中的常规下拉菜单方法和导航栏,但无法实现。
我的代码是:
<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
  <a href="#">Link 1</a>
  <a href="#">Link 2</a>
  <a href="#">Link 3</a>
  </div>
</div>

我的样式是:

.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
  position: relative;
  display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Links inside the dropdown */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown:hover .dropdown-content {
  display: block;
}
1个回答

1
这是您的代码的修改版本,支持嵌套下拉菜单。根据您提供的截图,您希望它在点击而不是悬停时工作,为此,您可以替换css中的:hover并使用React hooks触发打开和关闭,干杯。

.dropbtn {
  background-color: #4CAF50;
 width: 100%;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  cursor: pointer;
}

/* The container <div> - needed to position the dropdown content */
.dropdown {
  position: relative;
 width: 100%;
  display: inline-block;
}

/* Dropdown Content (Hidden by Default) */
.dropdown-content {
  display: none;
 width: 100%;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Links inside the dropdown */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropbtn_inside {
 color: black;
 cursor: pointer;
 background-color: #ffa;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown-content-inside {
 display: none;
}

.dropbtn_inside:hover > .dropdown-content-inside  {
 display: block;
}

.dropdown:hover .dropdown-content {
  display: block;
}
<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
  <a href="#">Link 1</a>
  <a href="#">Link 2</a>
  <div class="dropbtn_inside">
   Link 3
   <div class="dropdown-content-inside">
    <a href="#">Link 4</a>
    <a href="#">Link 5</a>
   </div>
  </div>
  </div>
</div>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接