Det finns flera typer av HTML-menyer (HyperText Markup Language), även om implementering av de flesta av dem kräver användning av cascading style sheets (CSS), ett skriptspråk eller några externa moduler. Den mest grundläggande typen är en lista med statiska länkar. En horisontell eller vertikal remsa med alternativ kan fås att se ut ungefär som en menyrad från ett skrivbordsprogram. Flernivåmenyer tillåter varje menyalternativ att innehålla en annan meny och kan användas för komplex navigering genom en stor webbplats. Specialeffekter som flytande HTML-menyer eller menyer som animeras när de öppnas är också möjliga på en webbplats.
Den mest grundläggande typen av HTML-menyer är en lista med statiska länkar. Detta är också ett av de enda sätten att implementera en meny i ren, grundläggande HTML. Menyn i det här fallet är i princip bara en lista med länkar, där var och en är en hypertextlänk till en destination. Även om den är väldigt enkel, kommer denna typ av meny att visas på alla enheter och förlitar sig inte på några speciella webbläsarfunktioner för att fungera.
Rullgardinsmenyer i HTML liknar en menyrad i en vanlig skrivbordsapplikation. När ett ord eller en ikon i den här typen av meny klickas, öppnas en ruta med valbara alternativ under ordet eller ikonen som klickades på. En rullgardinsmeny är bekant för de flesta datoranvändare men kan komplicera navigeringen på en webbplats om för många alternativ eller rubriker används.
HTML-menyer på flera nivåer är ett sätt att implementera ett kapslat menyträd. Detta kan visas som en rullgardinsmeny eller mer som ett egenskapsträd, där varje alternativ har ett sätt att utöka eventuella underalternativ i trädet. Med användning av dynamisk HTML (DHTML) eller ett skriptspråk kan en meny på flera nivåer genereras dynamiskt från en serie webbsidor och uppdateras under navigering. En möjlig komplikation är att om djupet på alternativträdet är mycket djupt kan formateringen på en webbsida påverkas.
Flytande HTML-menyer använder mindre standardiserade tekniker än andra typer av HTML-menyer men kan skapa ett bekvämt navigeringselement för en sida. Genom att använda CSS och scripting kan en enstaka ram placeras på en statisk plats på sidan så att menyn, trots rullning, alltid visas på samma plats. Vissa webbläsare stöder dock inte nödvändigtvis den positioneringskod som krävs för en flytande meny. Utan noggrann siddesign kan menyn faktiskt täcka viktig information på sidan.