position: absolute; .top-menu .bottom-menu , . , .
position: relative; , , , , .bottom-menu , .
flexbox .bottom-menu , .top-menu .
:
.top-menu .bottom-menu div, .menu.menu:display: none;, .flex-direction: column;,justify-content: space-between;, . ,left: 100%;,min-height: 100%;, , heightposition: absolute;, left position ing
.session:hover .menu:display: flex;, flexbox , .
.session:hover .top-menu .session:hover .bottom-menu
.session {
position: relative;
width: 300px;
}
.button {
background-color: white;
border: 1px solid black;
width: 20px;
height: 20px;
}
.button:hover {
cursor: pointer
}
.menu {
display: none;
flex-direction: column;
justify-content: space-between;
left: 100%;
min-height: 100%;
position: absolute;
}
.session:hover .menu {
display: flex;
}
.big-box {
background-color: red;
height: 300px;
}
.normal-box {
background-color: green;
height: 100px;
}
.small-box {
background-color: blue;
height: 50px;
}
<div class="big-box session">
<div class="menu">
<div class="top-menu">
<div class="button-1 button">1</div>
<div class="button-2 button">2</div>
<div class="button-3 button">3</div>
</div>
<div class="bottom-menu">
<div class="button-a button">a</div>
</div>
</div>
</div>
<div class="normal-box session">
<div class="menu">
<div class="top-menu">
<div class="button-1 button">1</div>
<div class="button-2 button">2</div>
<div class="button-3 button">3</div>
</div>
<div class="bottom-menu">
<div class="button-a button">a</div>
</div>
</div>
</div>
<div class="small-box session">
<div class="menu">
<div class="top-menu">
<div class="button-1 button">1</div>
<div class="button-2 button">2</div>
<div class="button-3 button">3</div>
</div>
<div class="bottom-menu">
<div class="button-a button">a</div>
</div>
</div>
</div>
Hide result
IE8, flexbox . , , position ing padding:
.menu:box-sizing: border-box;, padding heightpadding-bottom: 22px; - padding, height bottom-menu. "" bottom-menu
.session:hover .menu:.bottom-menu:bottom: 0; position .menu. "" paddingposition: absolute;, bottom position ing
, .top-menu , , .menu height, . padding .menu, .bottom-menu position ed absolutely, .top-menu.
.session {
position: relative;
width: 300px;
}
.button {
background-color: white;
border: 1px solid black;
width: 20px;
height: 20px;
}
.button:hover {
cursor: pointer
}
.menu {
box-sizing: border-box;
display: none;
left: 100%;
min-height: 100%;
padding-bottom: 22px;
position: absolute;
}
.session:hover .menu {
display: block;
}
.bottom-menu {
bottom: 0;
position: absolute;
}
.big-box {
background-color: red;
height: 300px;
}
.normal-box {
background-color: green;
height: 100px;
}
.small-box {
background-color: blue;
height: 50px;
}
<div class="big-box session">
<div class="menu">
<div class="top-menu">
<div class="button-1 button">1</div>
<div class="button-2 button">2</div>
<div class="button-3 button">3</div>
</div>
<div class="bottom-menu">
<div class="button-a button">a</div>
</div>
</div>
</div>
<div class="normal-box session">
<div class="menu">
<div class="top-menu">
<div class="button-1 button">1</div>
<div class="button-2 button">2</div>
<div class="button-3 button">3</div>
</div>
<div class="bottom-menu">
<div class="button-a button">a</div>
</div>
</div>
</div>
<div class="small-box session">
<div class="menu">
<div class="top-menu">
<div class="button-1 button">1</div>
<div class="button-2 button">2</div>
<div class="button-3 button">3</div>
</div>
<div class="bottom-menu">
<div class="button-a button">a</div>
</div>
</div>
</div>
Hide result