Looking for HTML and CSS menu examples to use in your own websites instead of creating one from scratch?
Read on.
One of the most important parts of any website, and one of the hardest to design and develop, is the navigation menu. Often the browsability of the entire website depends on this menu. If the menu is well-designed and visitors can easily find their way around, they are more likely to stay on the website and visit again. This is very important for the success of a business.
In its most basic form, a menu is very simple. It lists all the options that a viewer has to explore. For websites for smaller companies, a horizontal or vertical bar will often do. Larger websites, such as those for magazines, have more complicated menus. These usually contain many categories and sub-menus.
Regardless of the purpose and size of the website, web developers will be interested in this list of HTML and CSS menu examples. For a great source of inspiration, have a look at the list and check the links. In all, there are more than forty different navigation menu designs on this list.
Menu from Smart Living One-Pager Template

Menu from Minimal Portfolio Website Template

One Page Navigation CSS Menu
The first CSS menu on the list is by Alberto Hartzet. It is for one-page navigation and it is useful for linking to different sections. The whole design, including transitions, is based on CSS.
Pure CSS CPC full page nav
Coded by Alex Hart, this pure CSS menu has a simple look. It makes use of the hover effect, which allows the user to see additional information. Moving the mouse over one of the two cities in the menu, for example, reveals the phone numbers of the different branches.
Overlay Css menu
Made by Thibault D, this features an overlay menu with CSS animations.
Text fill on hover #1
By moving the mouse over one of the menu links, the text changes color in a nice CSS animation. It was created by G Rohit.
Lavalamp CSS Menu
A colored box moves when one of the links is highlighted. It was made by Patak.
menu with awesome hover
This unique design by Swarup Kumar Kuila has different menu options that are patterned into joined hexagons. Bright-colored animations grab the attention and indicate the selection.
Fun Hover Navigation
Scott Kennedy is the designer and coder behind this navigation menu. It is fun because it has an old-school look. CSS keyframes make the effect very pleasing.
Pure CSS Menu Transition
This is a pure hamburger menu, coded by Nathan Schmidt. The transition animations are based on CSS.
Simple, CSS only, responsive menu
This is a fully responsive simple horizontal menu, coded by John Urbank. By hovering over one of the options, a dropdown menu appears, giving more choices. It is an ideal choice for websites with few choices that can be shown as block elements.
Barra de navegación con css – Menú bar
This is a CSS menu by David.
#CodepenChallenge Full Page Nav
Created by Takane Ichinose, this full-page navigation menu, makes use of the page’s typography and icons as large images.
Pure CSS One page vertical navigation
The menu of this classic one-page layout by Alberto Hartzet is navigable with the keyboard.
Vertical Dark Menu with CSS
Alberto Leon created this vertical CSS menu with a dark theme. .
Randomly generated CSS blobby nav
Jhey has created a full-page CSS-animated menu. By clicking the hamburger icon in the top left, a selection of purple bubbles appears with the options. The bubble design is ideal for a cleaning website.
CSS Swinging Panel Menu
Seth Abbott made this pure CSS menu with a simple design. The swinging panels come down to reveal additional categories.
Pure CSS Magic Line Navbar
This is a clean CSS menu by Rock Starwind. The user can adjust the number of links at the top horizontal menu. The animated highlight must be set to match the selection to work properly.
Responsive Dropdown Menu
The navigation is based on a horizontal bar with dropdown menus. The options in the dropdown menus are in a block format. The code by Boyd Massie is in pure CSS.
CSS only fold out mobile menu
This fold-out menu, coded in CSS by Cyd Stumpel is especially suited for mobile devices.
The more menu
Clicking the three horizontal dots at the top unfolds the animated menu by Mikael Ainalem.
The Menu
The inspiration behind this menu is a table of contents. It is coded by ycw.
Menu 1
This hamburger menu by Virgil Pana folds over a background website to give a clearer idea of what it looks like in real life. The designer added some JS code to make the animations even smoother.
Inspiration for reponsive navigation
Designed by Antoine Vinial, the expandable horizontal bar has a unique design featuring a green tab. The tab expands when it is clicked to reveal the horizontal menu. The width of each option adapts to the size of the screen.
Circle Menu
This is a pure CSS menu, coded in CSS by Erin McKinney.
Menu Hover Fill Text
Designed and coded by alphardex, the text of the menu items fills in blue when hovering over them with the mouse pointer.
CSS – Folding Menu
This is an aesthetically pleasing, yet simple example of a pure CSS menu created by Animated Creativity.
Off-Canvas menu on Pure CSS
The coder of this pure CSS menu, Andrej Sharapov, used a vertical foldout navigation bar.
Colourful Flower Popup Menu
Jasper LaChance made a menu that radiates out upon clicking the hamburger icon. The differently colored bubbles that appear, contain an icon to direct the user to the place. The bubbles come to life because of the CSS shadow effects that were used.
CSS only drop down menu
This is a dropdown menu that was coded in CSS by steven.
Basic Responsive Menu
The focus of this super basic horizontal bar menu is on usability. It was created by Ash Neilson.
Drop Down Menu
This is a horizontal menu with dropdown possibilities, made by Mark.
Menu cpc-menus #CodePenChallenge
The coding is entirely in HTML and CSS, which makes the effect extra smooth. Vincent Durand made the code in such a way that the menu performs well on any screen.
Challenges: CSS Strange Nav
This different design by Deren is also in pure CSS.
Futuristic 3D Hover Effect
The visitor is invited to hover over a blue box. Doing so unfolds the icon-based menu. The CSS effect results in a futuristic 3D effect. It is made by Jouan Marcel.
CodePen Challenge: Menu
This seemingly simple navigation bar is full of nice CSS effects. It has beautiful color changes and animated dropdown menus. Adam Kuhn created a mega menu here, with many addable options, such as including images.
Hamburger icon with Morphing Menu
This template was created and coded by Sergio Andrade and offers a surprising hamburger menu with cool morphing effects.
Fork This Nav
Ryan Mulligan made this navigation menu. It opens by clicking a toggle icon and the menu that appears relies entirely on CSS for style, animation, and positioning.
Sticky Navigation Menu With Smooth Scrolling
This option, coded by Praveen Bisht, is good for landing pages and one-page sites. The menu expands when scrolling down the page.
3D Navbar
This is a 3-dimensional navigation menu, coded in CSS and HTML by Chenius.
Responsive navigation multilevel
Stéphanie Walter created this responsive horizontal menu bar with sublevels using CSS.
The circular menu
This is a circular hamburger menu made by Mikael Ainalem. Upon clicking the horizontal three bar icon, a small menu fans out. The different options are indicated with icons.
Pull Menu – Menu Interaction Concept
The pull-down menu created by Fabrizio Bianchi is particularly suited for handheld devices. This interesting design is put at the top of the page, which is a smart trick to prevent people from opening the menu by mistake.
Off Canvas Menu (CSS)
This one by Amli is an off-canvas menu that was made with pure CSS.
FAQs about CSS menus
1. How do I create a CSS dropdown menu?
The CSS “display” property allows you to hide and reveal a submenu when a parent menu item is hovered over, which can be used to construct a CSS dropdown menu. The “position” attribute can also be used to ensure that the dropdown is positioned correctly in relation to its parent menu item. To structure the menu, you’ll often utilize nested HTML lists.
2. How do I center a CSS menu horizontally?
Use the “text-align” attribute on the parent container element to horizontally center a CSS menu. Change the menu items to “display: inline-block” and “text-align: center;” to ensure proper alignment.
3. How do I make my CSS menu responsive?
Use media queries to change the menu’s layout dependent on the size of the screen to make your CSS menu adaptable. On smaller displays, for instance, you can switch the menu to a hamburger menu that is mobile-friendly.
4. How do I change the color of my CSS menu items on hover?
The “color” property and the “:hover” pseudo-class can be used to alter the color of CSS menu items when they are hovered over. When a menu item is hovered over, for instance, you can specify “a:hover color: red;” to make the text red.
5. How do I create a vertical CSS menu?
Use the “display” property to have the menu elements stack vertically to create a vertical CSS menu. The size of the menu items and the distance between them can also be changed using the “width” and “height” parameters.
6. How do I add icons to my CSS menu items?
Use an icon font or SVG icons to add icons to CSS menu items. The icon can then be included as a background picture using CSS or as a pseudo-element using the “content” attribute.
7. How do I create a sticky CSS menu that stays at the top of the page?
Use the “position” property to set the menu to “fixed” and the “top” property to put it at the top of the page to make a sticky CSS menu. To prevent the content below the menu from being obstructed, you should additionally add some padding or margin.
8. How do I add a border to my CSS menu items?
The “border” property can be used to give CSS menu items a border. For instance, you can create a black border around each menu item by setting “a border: 1px solid black;”.
9. How do I change the font of my CSS menu items?
You can utilize the “font-family” property to alter the font used for CSS menu items. To utilize the Arial font for the menu item text, you may set “a font-family: Arial, sans-serif;” as an example.
10. How do I make my CSS menu slide in from the side of the page when clicked?
You can use CSS transitions and transforms to create a CSS menu slide in from the side of the page when it is clicked. The menu must be set to “position: fixed;” and “left: -100%;” in order to be hidden off-screen, and when the menu button is hit, a class must be used to apply the transition and transform attributes.
If you liked this article about CSS menus, you should check out this article about CSS text animation.
There are also similar articles discussing CSS tables, CSS hover effects, CSS checkboxes, and CSS forms.
And let’s not forget about articles on CSS tabs, CSS search box, CSS button hover effects, and CSS slideshow.
Thanks for provided a valuable information.