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%;
, , height
position: 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
height
padding-bottom: 22px;
- padding
, height
bottom-menu
. "" bottom-menu
.session:hover .menu
:.bottom-menu
:bottom: 0;
position
.menu
. "" padding
position: 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