1.2 KiB
1.2 KiB
title, tags
| title | tags |
|---|---|
| Hamburguer Button | interactivity,beginner |
This is a way to build simple hamburger button for menu bar.
<div class="hb-container">
<span></span>
<span></span>
<span></span>
</div>
.hb-container {
width: 30px;
height: 30px;
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
}
.hb-container span {
width: 30px;
height: 5px;
border-radius: 3px;
margin: 2px 0;
background-color: #333;
transition: 0.5s;
}
.hb-container:hover span {
margin: 0;
}
.hb-container:hover :nth-child(2) {
opacity: 0;
}
.hb-container:hover :first-child {
position: absolute;
transform: rotate(-45deg);
}
.hb-container:hover :last-child {
position: absolute;
transform: rotate(45deg);
}
Explanation
- You need of two ou three
:spanto stack. - Keep them in rows using
:display-flex. - Use
:hoverfor rotate first:spanfor-45degand last45deg. - If you use three
:span, use:opacityfor hide the middle child of container. - Bonus: You can use JavaScript to manipulate CSS and keep
:X.