html - CSS 嵌套下拉菜单向右打开

标签 html css drop-down-menu

我修改了example from W3 schools稍微包含一个嵌套的下拉菜单。我不知道如何编辑 css,以便下拉菜单始终出现在悬停按钮的右侧。

理想情况下,当鼠标悬停在“主”按钮上,然后悬停在“子”按钮2上时,我希望下拉看起来像这样

[Main button] - [Sub button1]
                [Sub button2] - [Sub button2 item1]
                [Sub button3] - [Sub button2 item2]
                              - [Sub button2 item3]                    

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

.dropdown {
  position: relative;
  display: inline-block;
}

.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;
}

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

.dropdown-content a:hover {background-color: #f1f1f1}

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

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>

<h2>Dropdown Menu</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
	<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>
    <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>
  </div>
</div>

<p><strong>Note:</strong> We use href="#" for test links. In a real web site this would be URLs.</p>

</body>
</html>

最佳答案

只需添加 left: 100%; top: 0; 到您的 .dropdown-content。这将设置为绝对元素的定义位置。

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

.dropdown {
  position: relative;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  left: 100%;
  top: 0;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

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

.dropdown-content a:hover {
  background-color: #f1f1f1
}

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

.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}
<h2>Dropdown Menu</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <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>
    <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>
  </div>
</div>

<p><strong>Note:</strong> We use href="#" for test links. In a real web site this would be URLs.</p>

关于html - CSS 嵌套下拉菜单向右打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58021549/

相关文章:

html - 如何制作 margin : 0px auto work for container wrapped around floating divs

C# 2 ComboBox DropDownList 显示相同的值

javascript - 如何使用 javascript css 或 html attr 禁用 iOS 链接预览

php - 页面重新加载时标题中随机出现中断

JavaScript 函数 - 更改 DIV 中的内容

javascript - HTML5 视频时长

css - div创建滚动条

html - 如何快速填充 Rails 中的 *data inter-dependent* <select> 下拉菜单?

html - 全宽下拉

javascript - 从父元素隐藏某些内容但在 CSS 中显示子元素