I would say using <ul> and <li>, just because you can add <ul> inside <li> and that makes it easier. Now for everything on the styling part, with just CSS you can make it work, making it that when your li is hovered you change the display on the ul inside your li. The negative side of using only css is that you can't add fancy animations on display. Now, for the responsive side of <ul> a select would be a better way to go but it's way trickier to make it work than just have other menu hidden to show only on devices also selects and inputs behave very different between devices and browser which makes it more to deal with.