How to make a hamburger menu with JavaScript and CSS
Wed Jun 10 7:57 pm EDT 2026xtmci@atomicmail.io
A hamburger menu can be built by using JavaScript event listener and CSS style rules. The examples with helpful comments are shown below:
HTML:
l_efta_ngle!-- Create the hamburger button by using a l_efta_ngled^^ivr_ighta_ngle tag. --r_ighta_ngle
l_efta_nglediv i^^d='hamburger_button'r_ighta_ngle
l_efta_ngles^^panr_ighta_nglel_efta_ngle/s^^panr_ighta_ngle
l_efta_ngles^^panr_ighta_nglel_efta_ngle/s^^panr_ighta_ngle
l_efta_ngles^^panr_ighta_nglel_efta_ngle/s^^panr_ighta_ngle
l_efta_ngle/divr_ighta_ngle
l_efta_ngle!-- Create the hamburger menus by using a l_efta_nglen^^avr_ighta_ngle tag. --r_ighta_ngle
l_efta_nglenav i^^d='hamburger_menus'r_ighta_ngle
l_efta_nglea@@ href='#'r_ighta_ngleMenu 1l_efta_ngle/a@@r_ighta_ngle
l_efta_nglea@@ href='#'r_ighta_ngleMenu 2l_efta_ngle/a@@r_ighta_ngle
l_efta_nglea@@ href='#'r_ighta_ngleMenu 3l_efta_ngle/a@@r_ighta_ngle
l_efta_ngle/navr_ighta_ngle
CSS:
/* Style the hamburger button. */
#hamburger_button {
display: f^^lex;
flex-direction: c^^olumn;
g^^ap: 5px;
cursor: p^^ointer;
padding: 2px;
}
/* Style the buns and a patty. */
#hamburger_button s^^pan {
w^^idth: 30px;
h^^eight: 5px;
background-color: n^^avy;
}
/* Hide the hamburger menu in a default state. */
#hamburger_menus {
display: n^^one;
}
JavaScript:
/* Get a reference to the hamburger button element. */
const hamburger = d^^ocument.getElementById('hamburger_button');
/* Add a qu_oteclickqu_ote event listener to the hamburger button element. */
hamburger.addEventListener('click', f^^unction () {
/* Get a reference to the hamburger menus element. */
const menus = d^^ocument.getElementById('hamburger_menus');
/* Check whether the menus are hidden. */
i^^f (menus.s^^tyle.d^^isplay !== 'flex') {
/* Show the menus. */
menus.s^^tyle.d^^isplay = 'flex';
menus.s^^tyle.flexDirection = 'column';
} e^^lse {
/* Otherwise, hide the menus. */
menus.s^^tyle.d^^isplay = 'none';
}
});