我有一個下拉菜單,如下圖所示:
.dropdown
{
display: inline-block;
position: relative;
}
.dropdown button > a
{
display: block;
color: #000000;
text-decoration: none;
}
.dropdown-content
{
display: none;
position: absolute;
width: auto;
overflow: auto;
box-shadow: 0px 10px 10px 0px rgba(0,0,0,0.4);
}
.dropdown:hover .dropdown-content
{
display: block;
}
.dropdown-content a
{
display: block;
color: #000000;
background-color: #e9e9ed;
padding: 5px;
text-decoration: none;
}
.dropdown-content a:hover
{
color: #FFFFFF;
background-color: #0080bf;
}
<DIV class="dropdown"><BUTTON>Menu</BUTTON><DIV class="dropdown-content">
<A href="/1.php">Option 1</A>
<A href="/2.php">Option 2</A>
<A href="/3.php">Option 3</A>
<DIV class="dropdown"><BUTTON><A href="/4.php">Option 4</A></BUTTON><DIV class="dropdown-content">
<A href="/4-1.php">Option 4-1</A>
<A href="/4-2.php">Option 4-2</A>
<A href="/4-3.php">Option 4-3</A>
</DIV></DIV>
</DIV></DIV>
你可以這樣做:
移除溢出:自動;從。下拉式內容,因此溢出的子級別將可見。添加& gt選擇器打開。下拉菜單:懸停。下拉式內容行,所以直接孩子將顯示在懸停。最后一件事是添加子層樣式顯示在右上方。下拉菜單-內容。下拉式內容{ left:100%;top:0;}
body {
background-color: antiquewhite;
}
.dropdown
{
display: inline-block;
position: relative;
width: 100%;
}
.dropdown-content
{
display: none;
position: absolute;
width: auto;
box-shadow: 0px 10px 10px 0px rgba(0,0,0,0.4);
white-space: nowrap;
}
.dropdown:hover > .dropdown-content
{
display: block;
}
.dropdown-content a
{
display: block;
color: #000000;
background-color: #e9e9ed;
padding: 5px;
text-decoration: none;
}
.dropdown-content a:hover
{
color: #FFFFFF;
background-color: #0080bf;
}
/* To display second level on right*/
.dropdown-content .dropdown-content {
left: 100%;
top: 0;
}
<div class="dropdown">
<div class="menu">Menu</div>
<div class="dropdown-content">
<a href="/1.php">Option 1 Longer</a>
<div class="dropdown">
<div class="menu">
<a href="/4.php">Option</a>
</div>
<div class="dropdown-content">
<a href="/4-1.php">Option 4-1</a>
<a href="/4-2.php">Option 4-2</a>
<a href="/4-3.php">Option 4-3</a>
</div>
</div>
</div>
</div>
function showNestedDropdown() {
var firstDropdown = document.getElementById("firstDropdown");
var nestedDropdownContainer = document.getElementById("nestedDropdownContainer");
if (firstDropdown.value !== "") {
nestedDropdownContainer.style.display = "block";
} else {
nestedDropdownContainer.style.display = "none";
}
}
<select id="firstDropdown" onchange="showNestedDropdown()">
<option value="">Select an option</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
</select>
<div id="nestedDropdownContainer" style="display: none;">
<select id="nestedDropdown">
<option value="">Select a nested option</option>
<option value="nested1">Nested Option 1</option>
<option value="nested2">Nested Option 2</option>
</select>
</div>