I'm trying to create a vertical dropdown menu that is positioned inside of div (.menu) where there are 6 words/divs or more (.dropdown) that when hovered over, slowly reveals a menu (.dropdown-content) that slides down from the div (.dropdown) that is hovered over and causes the next word/div (.dropdown) below to shift down in response to the menu (.dropdown-content) puching it down and then the menu and the div that was pushed recedes back to their original positions off hover.
Is this something that can even be done in HTML/CSS alone or would Javascript absolutely have to be used as this is for a school project and we are not allowed to use Javascript or anything but HTML & CSS.
.menu {
position: relative;
top: 0px;
display: flex;
flex-direction: column;
width: 235px;
height: auto;
margin: auto;
padding: auto;
border-bottom-color: rgba(0, 5, 10, 1.00);
background-color: rgba(0, 5, 10, 1.00);
background-repeat: repeat;
background-clip: content-box;
}
.dropbtn {
/* style the buttons*/
position: relative;
background-color: rgba(40, 40, 40, 1.00);
color: darkorange;
padding: 10px;
margin-left: 0px;
font-size: 16px;
border: none;
border-radius: 5px;
font-family: monospace;
width: 235px;
}
.dropdown {
/*initialize the revealing sliding menu*/
position: absolute;
margin: auto;
padding: 10px;
display: block;
}
.dropdown-menu {
position: absolute;
display: block;
width: 100%;
overflow: hidden;
}
.dropdown-menu .dropdown-content {
display: block;
margin-left: 0px;
padding: 0px 0px 0px 0px;
background-color: black;
transform: translateY(-100%);
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
transition: transform 1.0s;
}
.dropdown-content a {
display: block;
color: white;
padding: 12px 16px;
text-decoration: none;
}
.dropdown-menu a:hover {
background-color: darkorange;
color: #000000;
}
.dropdown1:hover .dropdown-content {
transform: translateY(0%);
}
.dropdown1:hover .dropdown-menu {
position: absolute;
transition: 0.3s;
margin-bottom: 100px;
}
.dropdown1:hover .dropbtn {
background-color: rgba(65, 65, 65, 1.00);
color: white;
transition: 0.3s;
}
.dropdown2:hover .dropdown-content {
position: relative;
transform: translateY(0%);
}
.dropdown2:hover .dropbtn {
background-color: rgba(65, 65, 65, 1.00);
color: white;
transition: 0.3s;
}
.dropdown1 {
position: relative;
}
.dropdown2 {
position: relative;
}
<div class="menu">
<div class="dropdown">
<div class="dropdown1">
<button class="dropbtn">DIV 1</button>
<div class="dropdown-menu">
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
<a href="#">Link 4</a>
<a href="#">Link 5</a>
</div>
</div>
</div>
<div class="dropdown2">
<button class="dropbtn">DIV 2</button>
<div class="dropdown-menu">
<div class="dropdown-content">
<a href="#">Link 6</a>
<a href="#">Link 7</a>
<a href="#">Link 8</a>
<a href="#">Link 9</a>
<a href="#">Link 10</a>
</div>
</div>
</div>
<div class="dropdown2">
<button class="dropbtn">DIV 3</button>
<div class="dropdown-menu">
<div class="dropdown-content">
<a href="#">Link 11</a>
<a href="#">Link 12</a>
<a href="#">Link 13</a>
<a href="#">Link 14</a>
<a href="#">Link 15</a>
</div>
</div>
</div>
</div>
</div>